55 const MultiVectorBase<Scalar>& X,
56 const MultiVectorBase<Scalar>& Y,
60 typedef Tpetra::MultiVector<Scalar,LocalOrdinal,GlobalOrdinal,Node> TMV;
64 if (nonnull(X_tpetra) && nonnull(Y_tpetra)) {
71 X_tpetra->dot(*Y_tpetra, scalarProds_out);
73 EuclideanScalarProd<Scalar>::scalarProdsImpl(X, Y, scalarProds_out);
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...