VAT  3.0
Video Analysis Tool
eigenmultivariatenormal.h
1 #ifndef EIGENMULTIVARIATENORMAL_H
2 #define EIGENMULTIVARIATENORMAL_H
3 
4 #include <math.h>
5 
6 #include <boost/random/mersenne_twister.hpp>
7 #include <boost/random/normal_distribution.hpp>
8 #include <boost/random/variate_generator.hpp>
9 #include <src/eigenmultivariatenormal.h>
10 
17 namespace GMN{
18 template<typename _Scalar, int _size>
20 {
21  boost::mt19937 rng; // The uniform pseudo-random algorithm
22  boost::normal_distribution<_Scalar> norm; // The gaussian combinator
23  boost::variate_generator<boost::mt19937&,boost::normal_distribution<_Scalar> >
24  randN; // The 0-mean unit-variance normal generator
25 
26  //Eigen::Matrix<_Scalar,_size,_size> rot;
27  //Eigen::Matrix<_Scalar,_size,1> scl;
28 
29  //Eigen::Matrix<_Scalar,_size,1> mean;
30 
31 public:
32  EigenMultivariateNormal()//const Eigen::Matrix<_Scalar,_size,1>& meanVec,
33  //const Eigen::Matrix<_Scalar,_size,_size>& covarMat)
34  : randN(rng,norm)
35  {
36 // setCovar(covarMat);
37 // setMean(meanVec);
38  }
39 
40  void setCovar()//const Eigen::Matrix<_Scalar,_size,_size>& covarMat)
41  {
42 // Eigen::SelfAdjointEigenSolver<Eigen::Matrix<_Scalar,_size,_size> >
43 // eigenSolver(covarMat);
44 // rot = eigenSolver.eigenvectors();
45 // scl = eigenSolver.eigenvalues();
46 // for (int ii=0;ii<_size;++ii) {
47 // scl(ii,0) = sqrt(scl(ii,0));
48 // }
49  }
50 
51  void setMean()//const Eigen::Matrix<_Scalar,_size,1>& meanVec)
52  {
53 // mean = meanVec;
54  }
55 
56  void nextSample()//Eigen::Matrix<_Scalar,_size,1>& sampleVec)
57  {
58 // for (int ii=0;ii<_size;++ii) {
59 // sampleVec(ii,0) = randN()*scl(ii,0);
60 // }
61 // sampleVec = rot*sampleVec + mean;
62  }
63 
64 };
65 }
66 
67 #endif // EIGENMULTIVARIATENORMAL_H
Definition: eigenmultivariatenormal.h:19
Definition: eigenmultivariatenormal.h:17