45 #ifndef THYRA_DIAGONAL_SCALAR_PROD_DECL_HPP 46 #define THYRA_DIAGONAL_SCALAR_PROD_DECL_HPP 49 #include "Thyra_ScalarProdBase.hpp" 61 template<
class Scalar>
87 const ArrayView<Scalar> &scalarProds_out )
const;
96 RCP<const VectorBase<Scalar> > s_diag_;
105 template<
class Scalar>
106 RCP<DiagonalScalarProd<Scalar> >
109 const RCP<DiagonalScalarProd<Scalar> > scalarProd =
111 scalarProd->initialize(s_diag);
120 #endif // THYRA_DIAGONAL_SCALAR_PROD_DECL_HPP Concrete implementation of a scalar product using a diagonal vector.
Interface for a collection of column vectors called a multi-vector.
Abstract interface for finite-dimensional dense vectors.
virtual void scalarProdsImpl(const MultiVectorBase< Scalar > &X, const MultiVectorBase< Scalar > &Y, const ArrayView< Scalar > &scalarProds_out) const
virtual bool isEuclideanImpl() const
Returns false.
RCP< DiagonalScalarProd< Scalar > > diagonalScalarProd(const RCP< const VectorBase< Scalar > > &s_diag)
Nonmember constructor.
RCP< const LinearOpBase< Scalar > > getLinearOpImpl() const
void initialize(const RCP< const VectorBase< Scalar > > &s_diag)
Abstract interface for scalar products.