Thyra Version of the Day
Loading...
Searching...
No Matches
Thyra_EuclideanScalarProd_decl.hpp
1// @HEADER
2// *****************************************************************************
3// Thyra: Interfaces and Support for Abstract Numerical Algorithms
4//
5// Copyright 2004 NTESS and the Thyra contributors.
6// SPDX-License-Identifier: BSD-3-Clause
7// *****************************************************************************
8// @HEADER
9
10#ifndef THYRA_EUCLIDEAN_SCALAR_PROD_DECL_HPP
11#define THYRA_EUCLIDEAN_SCALAR_PROD_DECL_HPP
12
13
14#include "Thyra_ScalarProdBase_decl.hpp"
15
16
17namespace Thyra {
18
28template<class Scalar>
29class EuclideanScalarProd : public ScalarProdBase<Scalar> {
30protected:
31
34
36 virtual bool isEuclideanImpl() const;
37
39 virtual void scalarProdsImpl(
42 ) const;
43
45
46};
47
48
49} // end namespace Thyra
50
51
52#endif // THYRA_EUCLIDEAN_SCALAR_PROD_DECL_HPP
Concrete implementation of a scalar product for a Euclidean vector space (i.e. using the dot product)...
virtual bool isEuclideanImpl() const
Returns true.
virtual void scalarProdsImpl(const MultiVectorBase< Scalar > &X, const MultiVectorBase< Scalar > &Y, const ArrayView< Scalar > &scalarProds) const
Simply calls dots(X,Y,scalar_prods).
Interface for a collection of column vectors called a multi-vector.
Abstract interface for scalar products.
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.