1 #ifndef GAUSSIANBASE_H_
2 #define GAUSSIANBASE_H_
29 Eigen::VectorXi
const& hyperSizesIn);
45 Eigen::VectorXi
const& hyperSizesIn);
60 virtual Eigen::MatrixXd
ApplyCovariance(Eigen::Ref<const Eigen::MatrixXd>
const& x)
const = 0;
67 virtual Eigen::MatrixXd
ApplyPrecision(Eigen::Ref<const Eigen::MatrixXd>
const& x)
const = 0;
74 virtual Eigen::MatrixXd
ApplyCovSqrt(Eigen::Ref<const Eigen::MatrixXd>
const& x)
const = 0;
85 virtual Eigen::MatrixXd
ApplyPrecSqrt(Eigen::Ref<const Eigen::MatrixXd>
const& x)
const = 0;
97 virtual void SetMean(Eigen::VectorXd
const& newMu);
126 Eigen::VectorXd
const& vec)
override;
Defines an abstract Gaussian class.@seealso Gaussian.
virtual Eigen::VectorXd SampleImpl(ref_vector< Eigen::VectorXd > const &inputs) override
Sample the distribution.
virtual ~GaussianBase()=default
virtual Eigen::VectorXd const & GetMean() const
virtual unsigned int Dimension() const
virtual double LogDeterminant() const
virtual Eigen::MatrixXd ApplyPrecSqrt(Eigen::Ref< const Eigen::MatrixXd > const &x) const =0
virtual Eigen::VectorXd GradLogDensityImpl(unsigned int wrt, ref_vector< Eigen::VectorXd > const &inputs) override
virtual Eigen::MatrixXd ApplyCovariance(Eigen::Ref< const Eigen::MatrixXd > const &x) const =0
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 ...