MUQ  0.4.3
SumOperator.h
Go to the documentation of this file.
1 #ifndef SUMOPERATOR_H
2 #define SUMOPERATOR_H
3 
5 
6 
7 namespace muq
8 {
9 namespace Modeling
10 {
11 
12  class SumOperator : public LinearOperator
13  {
14  public:
15  SumOperator(std::shared_ptr<LinearOperator> Ain,
16  std::shared_ptr<LinearOperator> Bin);
17 
18  virtual ~SumOperator(){};
19 
21  virtual Eigen::MatrixXd Apply(Eigen::Ref<const Eigen::MatrixXd> const& x) override;
22 
24  virtual Eigen::MatrixXd ApplyTranspose(Eigen::Ref<const Eigen::MatrixXd> const& x) override;
25 
26  virtual Eigen::MatrixXd GetMatrix() override{return A->GetMatrix() + B->GetMatrix();};
27 
28  private:
29  std::shared_ptr<LinearOperator> A, B;
30 
31  }; // class SumOperator
32 
33 
34 } // namespace Modeling
35 } // namespace muq
36 
37 #endif // #ifndef SUMOPERATOR_H
Generic linear operator base class.
SumOperator(std::shared_ptr< LinearOperator > Ain, std::shared_ptr< LinearOperator > Bin)
Definition: SumOperator.cpp:7
std::shared_ptr< LinearOperator > B
Definition: SumOperator.h:29
std::shared_ptr< LinearOperator > A
Definition: SumOperator.h:26
virtual Eigen::MatrixXd ApplyTranspose(Eigen::Ref< const Eigen::MatrixXd > const &x) override
Definition: SumOperator.cpp:21
virtual Eigen::MatrixXd Apply(Eigen::Ref< const Eigen::MatrixXd > const &x) override
Definition: SumOperator.cpp:15
virtual Eigen::MatrixXd GetMatrix() override
Definition: SumOperator.h:26