MUQ  0.4.3
SliceOperator.h
Go to the documentation of this file.
1 #ifndef SLICEOPERATOR_H
2 #define SLICEOPERATOR_H
3 
5 
6 
7 namespace muq
8 {
9 namespace Modeling
10 {
11 
21  {
22  public:
23  SliceOperator(unsigned int vecSize,
24  int startIndIn,
25  int endIndIn,
26  int skipIn=1);
27 
28  virtual ~SliceOperator() = default;
29 
31  virtual Eigen::MatrixXd Apply(Eigen::Ref<const Eigen::MatrixXd> const& x) override;
32 
34  virtual Eigen::MatrixXd ApplyTranspose(Eigen::Ref<const Eigen::MatrixXd> const& x) override;
35 
36  virtual Eigen::MatrixXd GetMatrix() override;
37 
38  private:
39  static unsigned int ComputeRows(unsigned int vecSize, int startIndIn, int endIndIn, int skipIn);
40 
41  unsigned int startInd, endInd;
42  int skip;
43 
44  }; // class SliceOperator
45 
46 
47 } // namespace Modeling
48 } // namespace muq
49 
50 #endif // #ifndef SUMOPERATOR_H
Generic linear operator base class.
Defines a "slice" or "range" of an input vector.
Definition: SliceOperator.h:21
virtual Eigen::MatrixXd Apply(Eigen::Ref< const Eigen::MatrixXd > const &x) override
virtual Eigen::MatrixXd ApplyTranspose(Eigen::Ref< const Eigen::MatrixXd > const &x) override
SliceOperator(unsigned int vecSize, int startIndIn, int endIndIn, int skipIn=1)
virtual Eigen::MatrixXd GetMatrix() override
static unsigned int ComputeRows(unsigned int vecSize, int startIndIn, int endIndIn, int skipIn)
virtual ~SliceOperator()=default