1 #ifndef KRONECKERPRODUCTOPERATOR_H
2 #define KRONECKERPRODUCTOPERATOR_H
25 std::shared_ptr<LinearOperator> Bin);
29 virtual Eigen::MatrixXd
Apply(Eigen::Ref<const Eigen::MatrixXd>
const& x)
override;
32 virtual Eigen::MatrixXd
ApplyTranspose(Eigen::Ref<const Eigen::MatrixXd>
const& x)
override;
35 std::shared_ptr<LinearOperator> A;
36 std::shared_ptr<LinearOperator> B;
48 std::shared_ptr<LinearOperator>
KroneckerSum(std::shared_ptr<LinearOperator> A,
49 std::shared_ptr<LinearOperator> B);
52 Eigen::Ref<const Eigen::MatrixXd>
const& B);
Defines the Kronecker product of two other linear operators.
KroneckerProductOperator(std::shared_ptr< LinearOperator > Ain, std::shared_ptr< LinearOperator > Bin)
virtual Eigen::MatrixXd Apply(Eigen::Ref< const Eigen::MatrixXd > const &x) override
Generic linear operator base class.
virtual Eigen::MatrixXd ApplyTranspose(Eigen::Ref< const Eigen::MatrixXd > const &x)=0
Eigen::MatrixXd KroneckerProduct(Eigen::Ref< const Eigen::MatrixXd > const &A, Eigen::Ref< const Eigen::MatrixXd > const &B)
std::shared_ptr< LinearOperator > KroneckerSum(std::shared_ptr< LinearOperator > A, std::shared_ptr< LinearOperator > B)