8 std::shared_ptr<LinearOperator> Bin) :
LinearOperator(Ain->rows(), Bin->cols()), A(Ain), B(Bin)
11 if(
A->cols() !=
B->rows())
18 return A->Apply(
B->Apply(x));
24 return B->ApplyTranspose(
A->ApplyTranspose(x));
29 return A->GetMatrix()*
B->GetMatrix();
Generic linear operator base class.
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
Exception to throw when matrices, vectors, or arrays are the wrong size.
NLOHMANN_BASIC_JSON_TPL_DECLARATION std::string to_string(const NLOHMANN_BASIC_JSON_TPL &j)
user-defined to_string function for JSON values