MUQ  0.4.3
CompanionMatrix.h
Go to the documentation of this file.
1 #ifndef COMPANIONMATRIX_H
2 #define COMPANIONMATRIX_H
3 
5 #include <Eigen/Core>
6 
7 namespace muq
8 {
9 namespace Modeling
10 {
11 
22  {
23  public:
24  CompanionMatrix(Eigen::VectorXd const& lastRowIn) : LinearOperator(lastRowIn.size(), lastRowIn.size()), lastRow(lastRowIn){};
25 
26  virtual Eigen::MatrixXd Apply(Eigen::Ref<const Eigen::MatrixXd> const& x) override;
27 
28  virtual Eigen::MatrixXd ApplyTranspose(Eigen::Ref<const Eigen::MatrixXd> const& x) override;
29 
30  virtual Eigen::MatrixXd GetMatrix() override;
31 
32  private:
33  Eigen::VectorXd lastRow;
34  };
35 
36 } // namespace Modeling
37 } // namespace muq
38 
39 #endif // #ifndef COMPANIONMATRIX_H
Implments a companion matrix as a linear operator.
virtual Eigen::MatrixXd GetMatrix() override
virtual Eigen::MatrixXd ApplyTranspose(Eigen::Ref< const Eigen::MatrixXd > const &x) override
CompanionMatrix(Eigen::VectorXd const &lastRowIn)
virtual Eigen::MatrixXd Apply(Eigen::Ref< const Eigen::MatrixXd > const &x) override
Generic linear operator base class.