Tpetra parallel linear algebra
Version of the Day
|
LittleBlock, LittleVector, and kernels. More...
#include "Tpetra_ConfigDefs.hpp"
#include "Kokkos_ArithTraits.hpp"
#include "Kokkos_Complex.hpp"
Go to the source code of this file.
Namespaces | |
Tpetra | |
Namespace Tpetra contains the class and methods constituting the Tpetra library. | |
Tpetra::Experimental | |
Namespace for new Tpetra features that are not ready for public release, but are ready for evaluation by friendly expert users. | |
Functions | |
template<class ViewType1 , class ViewType2 , const int rank = ViewType1::rank> | |
void | Tpetra::Experimental::Impl::absMax (const ViewType2 &Y, const ViewType1 &X) |
Implementation of Tpetra's ABSMAX CombineMode for the small dense blocks in BlockCrsMatrix, and the small dense vectors in BlockMultiVector and BlockVector. More... | |
template<class ViewType , class CoefficientType , class LayoutType = typename ViewType::array_layout, class IndexType = int, const int rank = ViewType::rank> | |
void | Tpetra::Experimental::SCAL (const CoefficientType &alpha, const ViewType &x) |
x := alpha*x, where x is either rank 1 (a vector) or rank 2 (a matrix). More... | |
template<class CoefficientType , class ViewType1 , class ViewType2 , class LayoutType1 = typename ViewType1::array_layout, class LayoutType2 = typename ViewType2::array_layout, class IndexType = int, const int rank = ViewType1::rank> | |
void | Tpetra::Experimental::AXPY (const CoefficientType &alpha, const ViewType1 &x, const ViewType2 &y) |
y := y + alpha * x (dense vector or matrix update) More... | |
template<class ViewType1 , class ViewType2 , class LayoutType1 = typename ViewType1::array_layout, class LayoutType2 = typename ViewType2::array_layout, class IndexType = int, const int rank = ViewType1::rank> | |
void | Tpetra::Experimental::COPY (const ViewType1 &x, const ViewType2 &y) |
y := x, where x and y are either rank 1 (vectors) or rank 2 (matrices) with the same dimension(s). More... | |
template<class LittleVectorType1 , class LittleBlockType , class LittleVectorType2 , class CoefficientType , class IndexType = int> | |
void | Tpetra::Experimental::GEMV (const CoefficientType &alpha, const LittleBlockType &A, const LittleVectorType1 &x, const LittleVectorType2 &y) |
y := y + alpha * A * x (dense matrix-vector multiply) More... | |
template<class ViewType1 , class ViewType2 , class ViewType3 , class CoefficientType , class IndexType = int> | |
void | Tpetra::Experimental::GEMM (const char transA[], const char transB[], const CoefficientType &alpha, const ViewType1 &A, const ViewType2 &B, const CoefficientType &beta, const ViewType3 &C) |
Small dense matrix-matrix multiply: C := alpha*A*B + beta*C More... | |
template<class LittleBlockType , class LittleVectorType > | |
void | Tpetra::Experimental::GETF2 (const LittleBlockType &A, const LittleVectorType &ipiv, int &info) |
Computes A = P*L*U. More... | |
template<class LittleBlockType , class LittleIntVectorType , class LittleScalarVectorType > | |
void | Tpetra::Experimental::GETRS (const char mode[], const LittleBlockType &A, const LittleIntVectorType &ipiv, const LittleScalarVectorType &B, int &info) |
Solve the linear system(s) AX=B, using the result of GETRF or GETF2. More... | |
template<class LittleBlockType , class LittleIntVectorType , class LittleScalarVectorType > | |
void | Tpetra::Experimental::GETRI (const LittleBlockType &A, const LittleIntVectorType &ipiv, const LittleScalarVectorType &work, int &info) |
Compute inverse of A, using result of GETRF or GETF2. More... | |
template<class ST1 , class ST2 , class LO > | |
void | Tpetra::Experimental::deep_copy (const LittleBlock< ST2, LO > &dst, const LittleBlock< ST1, LO > &src, typename std::enable_if< std::is_convertible< ST1, ST2 >::value &&!std::is_const< ST2 >::value, int >::type *=NULL) |
Copy the LittleBlock src into the LittleBlock dst. More... | |
template<class ST1 , class ST2 , class LO > | |
void | Tpetra::Experimental::deep_copy (const LittleVector< ST2, LO > &dst, const LittleVector< ST1, LO > &src, typename std::enable_if< std::is_convertible< ST1, ST2 >::value &&!std::is_const< ST2 >::value, int >::type *=NULL) |
Copy the LittleVector src into the LittleVector dst. More... | |
template<class ST1 , class ST2 , class LO > | |
void | Tpetra::Experimental::deep_copy (const LittleBlock< ST2, LO > &dst, const ST1 &val, typename std::enable_if< std::is_convertible< ST1, ST2 >::value &&!std::is_const< ST2 >::value, int >::type *=NULL) |
Assign the scalar val to all entries of the LittleBlock dst . More... | |
template<class ST1 , class ST2 , class LO > | |
void | Tpetra::Experimental::deep_copy (const LittleVector< ST2, LO > &dst, const ST1 &val, typename std::enable_if< std::is_convertible< ST1, ST2 >::value &&!std::is_const< ST2 >::value, int >::type *=NULL) |
Assign the scalar val to all entries of the LittleVector dst . More... | |
LittleBlock, LittleVector, and kernels.
This file declares and defines Tpetra::Experimental::LittleBlock (a small dense matrix) and Tpetra::Experimental::LittleVector (a small dense vector). It also defines generic computational kernels for linear algebra operations with LittleBlock and LittleVector (or with compatible Kokkos::View specializations).
Definition in file Tpetra_Experimental_BlockView.hpp.
void Tpetra::Experimental::Impl::absMax | ( | const ViewType2 & | Y, |
const ViewType1 & | X | ||
) |
Implementation of Tpetra's ABSMAX CombineMode for the small dense blocks in BlockCrsMatrix, and the small dense vectors in BlockMultiVector and BlockVector.
This is the function that Tpetra actually uses to implement the ABSMAX CombineMode.
Definition at line 168 of file Tpetra_Experimental_BlockView.hpp.