MUQ  0.4.3
SeparableKarhunenLoeve.h
Go to the documentation of this file.
1 #ifndef SEPARABLEKARHUNENLOEVE_H
2 #define SEPARABLEKARHUNENLOEVE_H
3 
4 #include <Eigen/Core>
5 
7 
8 
9 namespace muq
10 {
11 namespace Approximation
12 {
42  {
43 
44  public:
45 
70  SeparableKarhunenLoeve(std::vector<std::shared_ptr<KernelBase>> kernelsIn,
71  std::vector<Eigen::MatrixXd> const& seedPtsIn,
72  std::vector<Eigen::VectorXd> const& seedWtsIn,
73  boost::property_tree::ptree options = boost::property_tree::ptree());
74 
75  virtual Eigen::MatrixXd GetModes(Eigen::Ref<const Eigen::MatrixXd> const& pts) const override;
76 
77  virtual unsigned int NumModes() const override;
78 
79  private:
80  std::vector<std::shared_ptr<KarhunenLoeveBase>> components;
81 
82  std::shared_ptr<MultiIndexSet> modeInds;
83  unsigned int numModes;
84 
85  }; // class SeparableKarhunenLoeve
86  }
87 }
88 
89 
90 #endif
Implements KL expansions that take advantage of separable structure in both the domain and covariance...
virtual unsigned int NumModes() const override
std::vector< std::shared_ptr< KarhunenLoeveBase > > components
virtual Eigen::MatrixXd GetModes(Eigen::Ref< const Eigen::MatrixXd > const &pts) const override
std::shared_ptr< MultiIndexSet > modeInds
SeparableKarhunenLoeve(std::vector< std::shared_ptr< KernelBase >> kernelsIn, std::vector< Eigen::MatrixXd > const &seedPtsIn, std::vector< Eigen::VectorXd > const &seedWtsIn, boost::property_tree::ptree options=boost::property_tree::ptree())