42 #ifndef THYRA_SCALAR_PROD_BASE_DECL_HPP 43 #define THYRA_SCALAR_PROD_BASE_DECL_HPP 45 #include "Thyra_OperatorVectorTypes.hpp" 46 #include "Teuchos_Describable.hpp" 89 template<
class Scalar>
90 class ScalarProdBase :
virtual public Teuchos::Describable {
166 const ArrayView<Scalar> &scalarProds_out
197 const ArrayView<Scalar> &scalarProds_out
203 return Teuchos::null;
214 #endif // THYRA_SCALAR_PROD_BASE_DECL_HPP virtual bool isEuclideanImpl() const =0
RCP< const LinearOpBase< Scalar > > getLinearOp() const
Return a linear operator representing the scalar product Q.
virtual RCP< const LinearOpBase< Scalar > > getLinearOpImpl() const
void scalarProds(const MultiVectorBase< Scalar > &X, const MultiVectorBase< Scalar > &Y, const ArrayView< Scalar > &scalarProds_out) const
Return the scalar product of each column in two multi-vectors in the vector space.
Interface for a collection of column vectors called a multi-vector.
Abstract interface for finite-dimensional dense vectors.
virtual Scalar scalarProdImpl(const VectorBase< Scalar > &x, const VectorBase< Scalar > &y) const
Default implementation calls scalarProdsImpl().
Scalar scalarProd(const VectorBase< Scalar > &x, const VectorBase< Scalar > &y) const
Return the scalar product of two vectors in the vector space.
virtual void scalarProdsImpl(const MultiVectorBase< Scalar > &X, const MultiVectorBase< Scalar > &Y, const ArrayView< Scalar > &scalarProds_out) const =0
bool isEuclidean() const
Return if this is a Euclidean (identity) scalar product is the same as the dot product.