Tpetra parallel linear algebra  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Namespaces | Functions
Tpetra_idot.hpp File Reference

Declaration of Tpetra::idot, a nonblocking dot product. More...

#include "Tpetra_iallreduce.hpp"
#include "Tpetra_MultiVector.hpp"
#include "Tpetra_Vector.hpp"
#include "Teuchos_CommHelpers.hpp"
#include "KokkosBlas1_dot.hpp"
#include <stdexcept>
#include <sstream>

Go to the source code of this file.

Namespaces

 Tpetra
 Namespace Tpetra contains the class and methods constituting the Tpetra library.
 
 Tpetra::Details
 Nonmember function that computes a residual Computes R = B - A * X.
 

Functions

template<class MV , class ResultView , bool runOnDevice>
void Tpetra::Details::idotLocal (const ResultView &localResult, const MV &X, const MV &Y)
 Compute dot product locally. Where the kernel runs controlled by runOnDevice. More...
 
template<class MV , class ResultView >
std::shared_ptr
< ::Tpetra::Details::CommRequest
Tpetra::Details::idotImpl (const ResultView &globalResult, const MV &X, const MV &Y)
 Internal (common) version of idot, a global dot product that uses a non-blocking MPI reduction. More...
 
template<class SC , class LO , class GO , class NT >
std::shared_ptr
< ::Tpetra::Details::CommRequest
Tpetra::idot (typename::Tpetra::MultiVector< SC, LO, GO, NT >::dot_type *resultRaw, const ::Tpetra::MultiVector< SC, LO, GO, NT > &X, const ::Tpetra::MultiVector< SC, LO, GO, NT > &Y)
 Nonblocking dot product, with either Tpetra::MultiVector or Tpetra::Vector inputs, and raw pointer or raw array output. More...
 
template<class SC , class LO , class GO , class NT >
std::shared_ptr
< ::Tpetra::Details::CommRequest
Tpetra::idot (const Kokkos::View< typename::Tpetra::MultiVector< SC, LO, GO, NT >::dot_type *, typename::Tpetra::MultiVector< SC, LO, GO, NT >::device_type > &result, const ::Tpetra::MultiVector< SC, LO, GO, NT > &X, const ::Tpetra::MultiVector< SC, LO, GO, NT > &Y)
 Nonblocking dot product, with Tpetra::MultiVector inputs, and rank-1 (one-dimensional array) Kokkos::View output. More...
 
template<class SC , class LO , class GO , class NT >
std::shared_ptr
< ::Tpetra::Details::CommRequest
Tpetra::idot (const Kokkos::View< typename::Tpetra::Vector< SC, LO, GO, NT >::dot_type, typename::Tpetra::Vector< SC, LO, GO, NT >::device_type > &result, const ::Tpetra::Vector< SC, LO, GO, NT > &X, const ::Tpetra::Vector< SC, LO, GO, NT > &Y)
 Nonblocking dot product, with Tpetra::Vector inputs, and rank-0 (single value) Kokkos::View output. More...
 

Detailed Description

Declaration of Tpetra::idot, a nonblocking dot product.

Tpetra::idot implements a nonblocking dot product. It takes two Tpetra::Vector or Tpetra::MultiVector inputs, and computes their vector-wise dot product(s).

The overloads of Tpetra::idot in this file are the only contents of this file upon which users should rely. Users should not rely on anything else in this file. In particular, anything in the Tpetra::Details namespace is an implementation detail and is NOT for users.

If you want to find the only functions in this file that you are supposed to use, search for "SKIP DOWN TO HERE" (omit the quotes).

Definition in file Tpetra_idot.hpp.