10 #ifndef THYRA_SCALAR_PROD_VECTOR_SPACE_BASE_DECL_HPP
11 #define THYRA_SCALAR_PROD_VECTOR_SPACE_BASE_DECL_HPP
13 #include "Thyra_OperatorVectorAdapterSupportTypes.hpp"
14 #include "Thyra_VectorSpaceDefaultBase.hpp"
52 template<
class Scalar>
53 class ScalarProdVectorSpaceBase :
virtual public VectorSpaceDefaultBase<Scalar> {
86 const RCP<
const ScalarProdBase<Scalar> > &
scalarProd );
109 const RCP<
const ScalarProdBase<Scalar> > &
scalarProd );
124 const VectorBase<Scalar>& x,
const VectorBase<Scalar>& y )
const;
127 const MultiVectorBase<Scalar>& X,
const MultiVectorBase<Scalar>& Y,
128 const ArrayView<Scalar> &scalarProds_out )
const;
134 RCP<const ScalarProdBase<Scalar> > scalarProd_;
143 template<
class Scalar>
144 RCP<const ScalarProdVectorSpaceBase<Scalar> >
151 vs->smallVecSpcFcty()->createVecSpc(dim),
true);
158 #endif // THYRA_SCALAR_PROD_VECTOR_SPACE_BASE_DECL_HPP
RCP< const ScalarProdVectorSpaceBase< Scalar > > createSmallScalarProdVectorSpaceBase(const RCP< const VectorSpaceBase< Scalar > > &vs, const Ordinal dim)
Create a small vector space casted to ScalarProdVectorSpaceBase.
ScalarProdVectorSpaceBase()
Construct to use dot product as the default.
void scalarProdsImpl(const MultiVectorBase< Scalar > &X, const MultiVectorBase< Scalar > &Y, const ArrayView< Scalar > &scalarProds_out) const
Calls getScalarProd()->scalarProds(X,Y,scalar_prods)
Abstract interface for objects that represent a space for vectors.
bool isEuclidean() const
Returns getScalarProd()->isEuclidean()
Teuchos::Ordinal Ordinal
Type for the dimension of a vector space. `*.
RCP< const ScalarProdBase< Scalar > > getScalarProd() const
Return the current scalar product.
virtual void setScalarProd(const RCP< const ScalarProdBase< Scalar > > &scalarProd)
Set a different scalar product.
Scalar scalarProd(const VectorBase< Scalar > &x, const VectorBase< Scalar > &y) const
Returns getScalarProd()->scalarProd(x,y)