* cholesky

This commit is contained in:
Caner Candan 2010-08-03 18:54:41 +02:00
commit 22602154fc
8 changed files with 195 additions and 33 deletions

View file

@ -1,29 +1,38 @@
#ifndef _doNormalParams_h
#define _doNormalParams_h
#include <boost/numeric/ublas/symmetric.hpp>
#include <boost/numeric/ublas/lu.hpp>
namespace ublas = boost::numeric::ublas;
template < typename EOT >
class doNormalParams
{
public:
doNormalParams(EOT mean, EOT variance)
: _mean(mean), _variance(variance)
typedef typename EOT::AtomType AtomType;
doNormalParams(const EOT& mean, const ublas::symmetric_matrix< AtomType, ublas::lower >& varcovar)
: _mean(mean), _varcovar(varcovar)
{
assert(_mean.size() > 0);
assert(_mean.size() == _variance.size());
assert(_mean.size() == _varcovar.size1());
assert(_mean.size() == _varcovar.size2());
}
EOT& mean(){return _mean;}
EOT& variance(){return _variance;}
ublas::symmetric_matrix< AtomType, ublas::lower >& varcovar(){return _varcovar;}
unsigned int size()
{
assert(_mean.size() == _variance.size());
assert(_mean.size() == _varcovar.size1());
assert(_mean.size() == _varcovar.size2());
return _mean.size();
}
private:
EOT _mean;
EOT _variance;
ublas::symmetric_matrix< AtomType, ublas::lower > _varcovar;
};
#endif // !_doNormalParams_h