MUQ  0.4.3
ProductOperator.h
Go to the documentation of this file.
1 #ifndef PRODUCTOPERATOR_H
2 #define PRODUCTOPERATOR_H
3 
5 
6 
7 namespace muq
8 {
9 namespace Modeling
10 {
11 
17  {
18  public:
19  ProductOperator(std::shared_ptr<LinearOperator> Ain,
20  std::shared_ptr<LinearOperator> Bin);
21 
22  virtual ~ProductOperator(){};
23 
25  virtual Eigen::MatrixXd Apply(Eigen::Ref<const Eigen::MatrixXd> const& x) override;
26 
28  virtual Eigen::MatrixXd ApplyTranspose(Eigen::Ref<const Eigen::MatrixXd> const& x) override;
29 
30  virtual Eigen::MatrixXd GetMatrix() override;
31 
32  private:
33  std::shared_ptr<LinearOperator> A, B;
34 
35  }; // class SumOperator
36 
37 
38 } // namespace Modeling
39 } // namespace muq
40 
41 #endif // #ifndef DIAGONALOPERATOR_H
Generic linear operator base class.
The product of two linear operators, .
virtual Eigen::MatrixXd GetMatrix() override
std::shared_ptr< LinearOperator > A
virtual Eigen::MatrixXd ApplyTranspose(Eigen::Ref< const Eigen::MatrixXd > const &x) override
std::shared_ptr< LinearOperator > B
ProductOperator(std::shared_ptr< LinearOperator > Ain, std::shared_ptr< LinearOperator > Bin)
virtual Eigen::MatrixXd Apply(Eigen::Ref< const Eigen::MatrixXd > const &x) override