Thyra Version of the Day
Loading...
Searching...
No Matches
Thyra_TpetraEuclideanScalarProd_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_TPETRA_EUCLIDEAN_SCALAR_PROD_DECL_HPP
11#define THYRA_TPETRA_EUCLIDEAN_SCALAR_PROD_DECL_HPP
12
13
14#include "Thyra_EuclideanScalarProd.hpp"
15#include "Tpetra_MultiVector.hpp"
16
17
18namespace Thyra {
19
25template <class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node>
27protected:
28
31
36 virtual void scalarProdsImpl(
40 ) const;
41
43
44private:
45
48 getConstTpetraMultiVector(const RCP<const MultiVectorBase<Scalar> >& mv) const;
49
50};
51
52
57template <class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node>
58inline
64
65
66} // end namespace Thyra
67
68
69#endif // THYRA_TPETRA_EUCLIDEAN_SCALAR_PROD_DECL_HPP
Concrete implementation of a scalar product for a Euclidean vector space (i.e. using the dot product)...
Interface for a collection of column vectors called a multi-vector.
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.
Extends concrete implementation of a Euclidean scalar product for specifically Tpetra vectors/multive...
virtual void scalarProdsImpl(const MultiVectorBase< Scalar > &X, const MultiVectorBase< Scalar > &Y, const ArrayView< Scalar > &scalarProds) const
If X and Y are both Tpetra wrappers, computes the pair-wise scalar products directly with Tpetra call...
RCP< const TpetraEuclideanScalarProd< Scalar, LocalOrdinal, GlobalOrdinal, Node > > tpetraEuclideanScalarProd()
Nonmember constructor for TpetraEuclideanScalarProd.
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)