MUQ  0.4.3
DiagonalOperator.h
Go to the documentation of this file.
1 #ifndef DIAGONALOPERATOR_H
2 #define DIAGONALOPERATOR_H
3 
5 
6 
7 namespace muq
8 {
9 namespace Modeling
10 {
11 
13  {
14  public:
15  DiagonalOperator(Eigen::VectorXd const& diagIn);
16 
17  virtual ~DiagonalOperator(){};
18 
20  virtual Eigen::MatrixXd Apply(Eigen::Ref<const Eigen::MatrixXd> const& x) override;
21 
23  virtual Eigen::MatrixXd ApplyTranspose(Eigen::Ref<const Eigen::MatrixXd> const& x) override{return Apply(x);};
24 
25  virtual Eigen::MatrixXd GetMatrix() override{return diag.asDiagonal();};
26 
27  private:
28  const Eigen::VectorXd diag;
29 
30  }; // class SumOperator
31 
32 
33 } // namespace Modeling
34 } // namespace muq
35 
36 #endif // #ifndef DIAGONALOPERATOR_H
virtual Eigen::MatrixXd ApplyTranspose(Eigen::Ref< const Eigen::MatrixXd > const &x) override
DiagonalOperator(Eigen::VectorXd const &diagIn)
virtual Eigen::MatrixXd GetMatrix() override
virtual Eigen::MatrixXd Apply(Eigen::Ref< const Eigen::MatrixXd > const &x) override
Generic linear operator base class.