MUQ  0.4.3
KarhunenLoeveBase.h
Go to the documentation of this file.
1 #ifndef KARHUNENLOEVEBASE_H
2 #define KARHUNENLOEVEBASE_H
3 
4 #include <Eigen/Core>
5 
6 namespace muq
7 {
8 namespace Approximation
9 {
11  {
12 
13  public:
14  virtual ~KarhunenLoeveBase() = default;
15 
16  virtual Eigen::MatrixXd GetModes(Eigen::Ref<const Eigen::MatrixXd> const& pts) const = 0;
17 
27  virtual Eigen::VectorXd Evaluate(Eigen::Ref<const Eigen::MatrixXd> const& pts,
28  Eigen::Ref<const Eigen::VectorXd> const& coeffs) const
29  {
30  return GetModes(pts) * coeffs;
31  };
32 
33  virtual unsigned int NumModes() const = 0;
34 
35  }; // class KarhunenLoeveBase
36  }
37 }
38 
39 
40 #endif
virtual unsigned int NumModes() const =0
virtual Eigen::VectorXd Evaluate(Eigen::Ref< const Eigen::MatrixXd > const &pts, Eigen::Ref< const Eigen::VectorXd > const &coeffs) const
Evaluate the KL expansion at a new pt given known coefficients.
virtual Eigen::MatrixXd GetModes(Eigen::Ref< const Eigen::MatrixXd > const &pts) const =0