Stochastic Loading Module
normal_multivar.h
1 #ifndef _NORMAL_MULTIVAR_H_
2 #define _NORMAL_MULTIVAR_H_
3 
4 // Boost random generator
5 #include <boost/random/mersenne_twister.hpp>
6 #include <boost/random/normal_distribution.hpp>
7 // Eigen dense matrices
8 #include <Eigen/Dense>
9 
10 #include "numeric_utils.h"
11 
12 namespace numeric_utils {
18  public:
23 
29  NormalMultiVar(int seed);
30 
34  virtual ~NormalMultiVar(){};
35 
45  bool generate(
46  Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic>& random_numbers,
47  const Eigen::VectorXd& means, const Eigen::MatrixXd& cov,
48  unsigned int cases = 1) override;
49 
54  std::string name() const override;
55 
56  private:
57  boost::random::mt19937 generator_;
59  boost::random::normal_distribution<double> distribution_;
63 };
64 } // namespace numeric_utils
65 
66 #endif // _NORMAL_MULTIVAR_H_
bool generate(Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > &random_numbers, const Eigen::VectorXd &means, const Eigen::MatrixXd &cov, unsigned int cases=1) override
std::string name() const override