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

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.

Classes

struct  Tpetra::Experimental::Impl::AbsMax< ViewType1, ViewType2, rank1 >
 Implementation of Tpetra's ABSMAX CombineMode for the small dense blocks in BlockCrsMatrix, or the small dense vectors in BlockMultiVector and BlockVector. More...
 
struct  Tpetra::Experimental::Impl::AbsMax< ViewType1, ViewType2, 2 >
 Implementation of Tpetra's ABSMAX CombineMode for the small dense blocks in BlockCrsMatrix. More...
 
struct  Tpetra::Experimental::Impl::AbsMax< ViewType1, ViewType2, 1 >
 Implementation of Tpetra's ABSMAX CombineMode for the small dense vectors in BlockMultiVector and BlockVector. More...
 
struct  Tpetra::Experimental::Impl::SCAL< ViewType, CoefficientType, LayoutType, IndexType, rank >
 Implementation of Tpetra::Experimental::SCAL function. More...
 
struct  Tpetra::Experimental::Impl::SCAL< ViewType, CoefficientType, LayoutType, IndexType, 1 >
 Implementation of Tpetra::Experimental::SCAL function, for ViewType rank 1 (i.e., a vector). More...
 
struct  Tpetra::Experimental::Impl::SCAL< ViewType, CoefficientType, LayoutType, IndexType, 2 >
 Implementation of Tpetra::Experimental::SCAL function, for ViewType rank 2 (i.e., a matrix). More...
 
struct  Tpetra::Experimental::Impl::SCAL< ViewType, CoefficientType, Kokkos::LayoutRight, IndexType, 2 >
 Implementation of Tpetra::Experimental::SCAL function, for ViewType rank 2 (i.e., a matrix), and LayoutType = LayoutRight. More...
 
struct  Tpetra::Experimental::Impl::FILL< ViewType, InputType, LayoutType, IndexType, rank >
 Implementation of Tpetra::Experimental::FILL function. More...
 
struct  Tpetra::Experimental::Impl::FILL< ViewType, InputType, LayoutType, IndexType, 1 >
 Implementation of Tpetra::Experimental::FILL function, for ViewType rank 1 (i.e., a vector). More...
 
struct  Tpetra::Experimental::Impl::FILL< ViewType, InputType, LayoutType, IndexType, 2 >
 Implementation of Tpetra::Experimental::FILL function, for ViewType rank 2 (i.e., a matrix). More...
 
struct  Tpetra::Experimental::Impl::AXPY< CoefficientType, ViewType1, ViewType2, LayoutType1, LayoutType2, IndexType, rank >
 Implementation of Tpetra::Experimental::AXPY function. More...
 
struct  Tpetra::Experimental::Impl::AXPY< CoefficientType, ViewType1, ViewType2, LayoutType1, LayoutType2, IndexType, 1 >
 Implementation of Tpetra::Experimental::AXPY function, for ViewType1 and ViewType2 rank 1 (i.e., vectors). More...
 
struct  Tpetra::Experimental::Impl::AXPY< CoefficientType, ViewType1, ViewType2, LayoutType1, LayoutType2, IndexType, 2 >
 Implementation of Tpetra::Experimental::AXPY function, for ViewType1 and ViewType2 rank 2 (i.e., matrices). More...
 
struct  Tpetra::Experimental::Impl::AXPY< CoefficientType, ViewType1, ViewType2, Kokkos::LayoutRight, Kokkos::LayoutRight, IndexType, 2 >
 Implementation of Tpetra::Experimental::AXPY function, for ViewType1 and ViewType2 rank 2 (i.e., matrices), when both ViewType1 and ViewType2 have LayoutRight. More...
 
struct  Tpetra::Experimental::Impl::AXPY< CoefficientType, ViewType1, ViewType2, Kokkos::LayoutLeft, Kokkos::LayoutLeft, IndexType, 2 >
 Implementation of Tpetra::Experimental::AXPY function, for ViewType1 and ViewType2 rank 2 (i.e., matrices), when both ViewType1 and ViewType2 have LayoutLeft. More...
 
struct  Tpetra::Experimental::Impl::COPY< ViewType1, ViewType2, LayoutType1, LayoutType2, IndexType, rank >
 Implementation of Tpetra::Experimental::COPY function. More...
 
struct  Tpetra::Experimental::Impl::COPY< ViewType1, ViewType2, LayoutType1, LayoutType2, IndexType, 1 >
 Implementation of Tpetra::Experimental::COPY function, for ViewType1 and ViewType2 rank 1 (i.e., vectors). More...
 
struct  Tpetra::Experimental::Impl::COPY< ViewType1, ViewType2, LayoutType1, LayoutType2, IndexType, 2 >
 Implementation of Tpetra::Experimental::COPY function, for ViewType1 and ViewType2 rank 2 (i.e., matrices). More...
 
struct  Tpetra::Experimental::Impl::COPY< ViewType1, ViewType2, Kokkos::LayoutRight, Kokkos::LayoutRight, IndexType, 2 >
 Implementation of Tpetra::Experimental::COPY function, for ViewType1 and ViewType2 rank 2 (i.e., matrices), where both have LayoutRight (row-major order, with contiguous storage). More...
 
struct  Tpetra::Experimental::Impl::COPY< ViewType1, ViewType2, Kokkos::LayoutLeft, Kokkos::LayoutLeft, IndexType, 2 >
 Implementation of Tpetra::Experimental::COPY function, for ViewType1 and ViewType2 rank 2 (i.e., matrices), where both have LayoutLeft (row-major order, with contiguous storage). More...
 
struct  Tpetra::Experimental::Impl::GETRS< LittleBlockType, LittleIntVectorType, LittleScalarVectorType, rank >
 Computes the solution to Ax=b. More...
 
struct  Tpetra::Experimental::Impl::GETRS< LittleBlockType, LittleIntVectorType, LittleScalarVectorType, 1 >
 Special case of GETRS for a single right-hand side. More...
 
struct  Tpetra::Experimental::Impl::GETRS< LittleBlockType, LittleIntVectorType, LittleScalarVectorType, 2 >
 Special case of GETRS for multiple right-hand sides. More...
 

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...
 

Detailed Description

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.