8 GaussianBase::GaussianBase(
unsigned int dim) :
Distribution(dim, Eigen::VectorXi()),
9 mean(Eigen::VectorXd::Zero(dim))
13 Eigen::VectorXi
const& hyperSizesIn) :
Distribution(dim, hyperSizesIn),
14 mean(Eigen::VectorXd::Zero(dim))
25 Eigen::VectorXi
const& hyperSizesIn) :
Distribution(muIn.size(), hyperSizesIn),
34 Eigen::VectorXd delta = inputs.at(0).get() -
mean;
43 Eigen::VectorXd z = RandomGenerator::GetNormal(
mean.rows());
54 assert(newMu.rows() ==
mean.rows());
60 Eigen::VectorXd delta = inputs.at(0).get() -
mean;
64 std::cerr <<
"ERROR: Gradient wrt mean and covariance has not been implemented." << std::endl;
72 Eigen::VectorXd
const& vec)
74 if((wrt1==0)&&(wrt2==0)){
77 std::cerr <<
"ERROR: ApplyHessian wrt mean and covariance has not been implemented." << std::endl;
const unsigned int varSize
virtual Eigen::VectorXd SampleImpl(ref_vector< Eigen::VectorXd > const &inputs) override
Sample the distribution.
virtual unsigned int Dimension() const
virtual double LogDeterminant() const
virtual Eigen::VectorXd GradLogDensityImpl(unsigned int wrt, ref_vector< Eigen::VectorXd > const &inputs) override
virtual Eigen::MatrixXd ApplyPrecision(Eigen::Ref< const Eigen::MatrixXd > const &x) const =0
GaussianBase(unsigned int dim)
virtual void SetMean(Eigen::VectorXd const &newMu)
virtual double LogDensityImpl(ref_vector< Eigen::VectorXd > const &inputs) override
virtual Eigen::VectorXd ApplyLogDensityHessianImpl(unsigned int wrt1, unsigned int wrt2, ref_vector< Eigen::VectorXd > const &inputs, Eigen::VectorXd const &vec) override
virtual Eigen::MatrixXd ApplyCovSqrt(Eigen::Ref< const Eigen::MatrixXd > const &x) const =0
virtual void ResetHyperparameters(ref_vector< Eigen::VectorXd > const ¶ms)
std::vector< std::reference_wrapper< const T > > ref_vector
A vector of references to something ...