Tpetra parallel linear algebra  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
List of all members
Tpetra::Details::IntRowPtrHelper< LocalMatrix, IntLocalMatrix > Struct Template Reference

#include <Tpetra_Details_IntRowPtrHelper.hpp>

Inheritance diagram for Tpetra::Details::IntRowPtrHelper< LocalMatrix, IntLocalMatrix >:
Inheritance graph
[legend]

Detailed Description

template<typename LocalMatrix, typename IntLocalMatrix = KokkosSparse::CrsMatrix<typename LocalMatrix::value_type, typename LocalMatrix::ordinal_type, typename LocalMatrix::device_type, void, int>>
struct Tpetra::Details::IntRowPtrHelper< LocalMatrix, IntLocalMatrix >

Helper for CrsMatrix BlockCrsMatrix. Converts rowptrs of the local matrix to int if it's not already int-valued, and overflow won't occur. This enables TPLs to be used in KokkosSparse::spmv and KokkosSparse::spgemm

This functionality is temporary. When KokkosKernels 4.4 is released, the default offset (rowptrs element type) in KK's ETI will switch to int, and Tpetra's matrix types will also switch to int. This will make the int rowptrs handling here unnecessary, and CrsMatrix/BlockCrsMatrix can simply store the SPMVHandle themselves.

Template Parameters
IntLocalMatrix,:if LocalMatrix is a CrsMatrix, this parameter is automatically a CrsMatrix with integer-typed rows pointers. Otherwise (BlockCrsMatrix), a corresponding integer-typed BlockCrsMatrix will need to be provided by the

Definition at line 63 of file Tpetra_Details_IntRowPtrHelper.hpp.


The documentation for this struct was generated from the following file: