1 #ifndef MATH_GAUSSIAN_H 2 #define MATH_GAUSSIAN_H 4 #include "MatrixTemplate.h" 35 Gaussian(
const MatrixT& sigma,
const VectorT&
mu);
40 int degeneracy()
const;
41 Real normalizationFactor()
const;
45 void getCovariance(MatrixT& sigma)
const;
46 void getVariance(VectorT& sigma)
const;
47 void getPrecision(MatrixT& sigma)
const;
48 void setMean(
const VectorT& mu);
49 const VectorT& getMean()
const {
return mu; }
53 bool setMaximumLikelihood(
const std::vector<VectorT>& examples,
const std::vector<Real>& weights,
int verbose=1);
54 void setMaximumLikelihoodDiagonal(
const std::vector<VectorT>& examples);
55 void setMaximumLikelihoodDiagonal(
const std::vector<VectorT>& examples,
const std::vector<Real>& weights);
58 const VectorT& meanprior,T meanStrength,
const MatrixT& covprior,T covStrength,
int verbose=1);
60 const VectorT& meanprior,T meanStrength,
const MatrixT& covprior,T covStrength,
int verbose=1);
61 void setMaximumAPosterioriDiagonal(
const std::vector<VectorT>& examples,
62 const VectorT& meanprior,T meanStrength,
const VectorT& varprior,T covStrength);
63 void setMaximumAPosterioriDiagonal(
const std::vector<VectorT>& examples,
const std::vector<Real>& weights,
64 const VectorT& meanprior,T meanStrength,
const VectorT& varprior,T covStrength);
79 void setJoint(
const MyT& g1,
const MyT& g2);
82 void setJoint(
const MyT& g1,
const MyT& g2,
const MatrixT& corr);
84 void setMarginalized(
const MyT& g,
int i);
86 void setMarginalized(
const MyT& g,
const std::vector<int>& elements);
88 void setConditional(
const MyT& g,Real xi,
int i);
90 void setConditional(
const MyT& g,
const VectorT& x,
const std::vector<int>& elements);
93 T klDivergence(
const MyT& g)
const;
105 const std::vector<int>& elements,
113 const std::vector<int>& elements,
void generate(VectorT &x) const
Generates a point x according to this distribution.
Definition: gaussian.cpp:514
VectorT mu
mean
Definition: gaussian.h:96
void GaussianTransform(const VectorTemplate< T > &mean, const MatrixTemplate< T > &cov, const MatrixTemplate< T > &A, const VectorTemplate< T > &b, VectorTemplate< T > &newmean, MatrixTemplate< T > &newcov)
transforms the distribution N(mean,cov) with the linear transform Ax+b
Definition: gaussian.cpp:775
T logPartialProbability(const VectorT &x, const std::vector< int > &elements) const
Evaluates the log partial probability.
Definition: gaussian.cpp:482
void GaussianMarginalize(const VectorTemplate< T > &mean, const MatrixTemplate< T > &cov, const std::vector< int > &elements, VectorTemplate< T > &newmean, MatrixTemplate< T > &newcov)
marginalizes the distribution N(mean,cov) over the given elements
Definition: gaussian.cpp:738
Multivariate gaussian N(mu,K) of d dimensions.
Definition: gaussian.h:26
T partialProbability(const VectorT &x, const std::vector< int > &elements) const
Evaluates the probability of a partial setting x(elements[i])=x[i].
Definition: gaussian.cpp:454
MatrixT L
Cholesky decomposition of the covariance matrix.
Definition: gaussian.h:95
bool setMaximumLikelihood(const std::vector< VectorT > &examples, int verbose=1)
ML estimation.
Definition: gaussian.cpp:147
bool setCovariance(const MatrixT &sigma, int verbose=1)
Covariance matrix must be symmetric, strictly positive definite.
Definition: gaussian.cpp:60
T logProbability(const VectorT &x) const
Evaluates the log-probability of x.
Definition: gaussian.cpp:430
void GaussianTransformJoint(const VectorTemplate< T > &xmean, const MatrixTemplate< T > &xcov, const MatrixTemplate< T > &A, const VectorTemplate< T > &b, VectorTemplate< T > &jointmean, MatrixTemplate< T > &jointcov)
Definition: gaussian.cpp:790
T probability(const VectorT &x) const
Evaluates the probability of x.
Definition: gaussian.cpp:408
A matrix over the field T.
Definition: function.h:10
Contains all definitions in the Math package.
Definition: WorkspaceBound.h:12
A vector over the field T.
Definition: function.h:9
void GaussianCondition(const VectorTemplate< T > &mean, const MatrixTemplate< T > &cov, const VectorTemplate< T > &x, const std::vector< int > &elements, VectorTemplate< T > &newmean, MatrixTemplate< T > &newcov)
Definition: gaussian.cpp:657
bool setMaximumAPosteriori(const std::vector< VectorT > &examples, const VectorT &meanprior, T meanStrength, const MatrixT &covprior, T covStrength, int verbose=1)
MAP estimation with inverse weishart distribution.
Definition: gaussian.cpp:276