1 #ifndef CONCATENATEOPERATOR_H
2 #define CONCATENATEOPERATOR_H
34 virtual Eigen::MatrixXd
Apply(Eigen::Ref<const Eigen::MatrixXd>
const& x)
override;
37 virtual Eigen::MatrixXd
ApplyTranspose(Eigen::Ref<const Eigen::MatrixXd>
const& x)
override;
40 virtual Eigen::MatrixXd
GetMatrix()
override;
42 static std::shared_ptr<ConcatenateOperator>
VStack(std::shared_ptr<LinearOperator> Ain,
43 std::shared_ptr<LinearOperator> Bin);
45 static std::shared_ptr<ConcatenateOperator>
HStack(std::shared_ptr<LinearOperator> Ain,
46 std::shared_ptr<LinearOperator> Bin);
51 std::vector<std::shared_ptr<LinearOperator>>
ops;
55 static int GetRows(std::vector<std::shared_ptr<LinearOperator>>
const& opsIn,
58 static int GetCols(std::vector<std::shared_ptr<LinearOperator>>
const& opsIn,
Vertical or horizontal concatenation of other linear operators.
static std::shared_ptr< ConcatenateOperator > HStack(std::shared_ptr< LinearOperator > Ain, std::shared_ptr< LinearOperator > Bin)
static std::shared_ptr< ConcatenateOperator > VStack(std::shared_ptr< LinearOperator > Ain, std::shared_ptr< LinearOperator > Bin)
virtual Eigen::MatrixXd Apply(Eigen::Ref< const Eigen::MatrixXd > const &x) override
static int GetCols(std::vector< std::shared_ptr< LinearOperator >> const &opsIn, const int rowColIn)
virtual ~ConcatenateOperator()
std::vector< std::shared_ptr< LinearOperator > > ops
static int GetRows(std::vector< std::shared_ptr< LinearOperator >> const &opsIn, const int rowColIn)
virtual Eigen::MatrixXd GetMatrix() override
ConcatenateOperator(std::vector< std::shared_ptr< LinearOperator >> const &opsIn, const int rowColIn)
virtual Eigen::MatrixXd ApplyTranspose(Eigen::Ref< const Eigen::MatrixXd > const &x) override
Generic linear operator base class.