42#ifndef THYRA_SCALED_ADJOINT_LINEAR_OP_BASE_DECL_HPP
43#define THYRA_SCALED_ADJOINT_LINEAR_OP_BASE_DECL_HPP
45#include "Thyra_LinearOpBase.hpp"
76#ifdef THYRA_INJECT_USING_DECLARATIONS
141template<
class Scalar>
185template<
class Scalar>
Base class for all linear operators.
void apply(const EOpTransp M_trans, const MultiVectorBase< Scalar > &X, const Ptr< MultiVectorBase< Scalar > > &Y, const Scalar alpha, const Scalar beta) const
Apply the linear operator to a multi-vector : Y = alpha*op(M)*X + beta*Y.
Base class for LinearOpBase decorator subclasses that wrap a LinearOpBase object and adds on an extra...
virtual Scalar overallScalar() const =0
Return the overall scale factor.
virtual RCP< const LinearOpBase< Scalar > > getOrigOp() const =0
Return the const original linear operator origOp.
virtual RCP< LinearOpBase< Scalar > > getNonconstOrigOp()=0
Return the non-const original linear operator origOp.
virtual EOpTransp overallTransp() const =0
Return the overall transpose (adjoint) enum.
void unwrap(const LinearOpBase< Scalar > &Op, Scalar *scalar, EOpTransp *transp, const LinearOpBase< Scalar > **origOp)
Extract the overallScalar, overallTransp and const origOp from a const LinearOpBase object.
EOpTransp
Enumeration for determining how a linear operator is applied. `*.