42 #ifndef THYRA_DIAGONAL_LINEAR_OP_DECL_HPP 43 #define THYRA_DIAGONAL_LINEAR_OP_DECL_HPP 45 #include "Thyra_DiagonalLinearOpBase.hpp" 46 #include "Teuchos_ConstNonconstObjectContainer.hpp" 81 template<
class Scalar>
198 RCP<const VectorBase<Scalar> >
getDiag()
const;
210 RCP< const VectorSpaceBase<Scalar> >
range()
const;
217 RCP< const VectorSpaceBase<Scalar> >
domain()
const;
219 RCP<const LinearOpBase<Scalar> >
clone()
const;
240 Teuchos::ConstNonconstObjectContainer<VectorBase<Scalar> > diag_;
249 template<
class Scalar>
250 RCP<const LinearOpBase<Scalar> >
253 const std::string &label =
"" 256 RCP<LinearOpBase<Scalar> > dlo =
259 dlo->setObjectLabel(label);
267 #endif // THYRA_DIAGONAL_LINEAR_OP_DECL_HPP EOpTransp
Enumeration for determining how a linear operator is applied. `*.
RCP< const LinearOpBase< Scalar > > diagonal(const RCP< VectorBase< Scalar > > &diag, const std::string &label="")
Nonmember constructor function.
RCP< const VectorSpaceBase< Scalar > > domain() const
Returns this->getDiag()->space().
Abstract interface for objects that represent a space for vectors.
void initialize(const RCP< const VectorSpaceBase< Scalar > > &space)
Initialize given a vector space which allocates a vector internally.
Interface for a collection of column vectors called a multi-vector.
RCP< const LinearOpBase< Scalar > > clone() const
RCP< const VectorSpaceBase< Scalar > > range() const
Returns this->getDiag()->space().
Abstract interface for finite-dimensional dense vectors.
void applyImpl(const EOpTransp M_trans, const MultiVectorBase< Scalar > &X, const Ptr< MultiVectorBase< Scalar > > &Y, const Scalar alpha, const Scalar beta) const
DefaultDiagonalLinearOp()
Constructs to uninitialized.
bool opSupportedImpl(EOpTransp M_trans) const
RCP< VectorBase< Scalar > > getNonconstDiag()
RCP< const VectorBase< Scalar > > getDiag() const
Interface class for for diagonal linear operators.
Default concrete LinearOpBase subclass for diagonal linear operators.
void uninitialize()
Uninitialize.