MUQ  0.4.3
GaussianOperator.h
Go to the documentation of this file.
1 #ifndef GAUSSIANOPERATOR_H
2 #define GAUSSIANOPERATOR_H
3 
7 
8 #include <memory>
9 
10 namespace muq
11 {
12 namespace Modeling
13 {
14 
15 
23 public:
24 
32  GaussianOperator(std::shared_ptr<GaussianBase> const& gaussIn,
33  Gaussian::Mode precOrCovIn);
34 
35  virtual ~GaussianOperator() = default;
36 
38  virtual Eigen::MatrixXd Apply(Eigen::Ref<const Eigen::MatrixXd> const& x) override;
39 
41  virtual Eigen::MatrixXd ApplyTranspose(Eigen::Ref<const Eigen::MatrixXd> const& x) override;
42 
43 protected:
44  std::shared_ptr<GaussianBase> gauss;
46 
47 };
48 
49 } // namespace Modeling
50 } // namespace MUQ
51 
52 
53 
54 #endif
Creates a linear operator for the action of the covariance or precision matrix of a Gaussian distribu...
virtual ~GaussianOperator()=default
virtual Eigen::MatrixXd Apply(Eigen::Ref< const Eigen::MatrixXd > const &x) override
GaussianOperator(std::shared_ptr< GaussianBase > const &gaussIn, Gaussian::Mode precOrCovIn)
std::shared_ptr< GaussianBase > gauss
virtual Eigen::MatrixXd ApplyTranspose(Eigen::Ref< const Eigen::MatrixXd > const &x) override
Mode
Are we specifying the mean, covariance matrix, or precision matrix.
Definition: Gaussian.h:18
Generic linear operator base class.