Tpetra parallel linear algebra
Version of the Day
|
Linear algebra kernels for small dense matrices and vectors. More...
#include "TpetraCore_config.h"
#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> | |
KOKKOS_INLINE_FUNCTION 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> | |
KOKKOS_INLINE_FUNCTION 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 ViewType , class InputType , class LayoutType = typename ViewType::array_layout, class IndexType = int, const int rank = ViewType::rank> | |
KOKKOS_INLINE_FUNCTION void | Tpetra::Experimental::FILL (const ViewType &x, const InputType &val) |
Set every entry of x to val. 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> | |
KOKKOS_INLINE_FUNCTION 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> | |
KOKKOS_INLINE_FUNCTION void | Tpetra::Experimental::COPY (const ViewType1 &x, const ViewType2 &y) |
Deep copy x into y, where x and y are either rank 1 (vectors) or rank 2 (matrices) with the same dimension(s). More... | |
template<class VecType1 , class BlkType , class VecType2 , class CoeffType , class IndexType = int> | |
KOKKOS_INLINE_FUNCTION void | Tpetra::Experimental::GEMV (const CoeffType &alpha, const BlkType &A, const VecType1 &x, const VecType2 &y) |
y := y + alpha * A * x (dense matrix-vector multiply) More... | |
template<class ViewType1 , class ViewType2 , class ViewType3 , class CoefficientType , class IndexType = int> | |
KOKKOS_INLINE_FUNCTION 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 > | |
KOKKOS_INLINE_FUNCTION 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 > | |
KOKKOS_INLINE_FUNCTION 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 > | |
KOKKOS_INLINE_FUNCTION 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... | |
Linear algebra kernels for small dense matrices and vectors.
This file declares and defines generic computational kernels for small dense linear algebra operations, with matrices and vectors stored as Kokkos::View. The operations are meant as helpers for Tpetra::Experimental::BlockCrsMatrix.
Definition in file Tpetra_Experimental_BlockView.hpp.
KOKKOS_INLINE_FUNCTION 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 174 of file Tpetra_Experimental_BlockView.hpp.