Kokkos Node API and Local Linear Algebra Kernels Version of the Day
Kokkos::CrsGraph< Ordinal, Node, LocalMatOps > Class Template Reference

Kokkos compressed-row sparse graph class.Default specialization is a host-bound CrsGraphHostCompute object. More...

#include <Kokkos_CrsGraph.hpp>

Inheritance diagram for Kokkos::CrsGraph< Ordinal, Node, LocalMatOps >:
Inheritance graph
[legend]

List of all members.

Public Member Functions

Accessor routines.
RCP< Node > getNode () const
 Node accessor.
Data entry and accessor methods.
size_t getNumRows () const
 Return the number of rows in the graph.
size_t getNumEntries () const
 Return the number of entries in the graph.
bool isEmpty () const
 Indicates that the graph is filled, but empty.
bool isFinalized () const
 Indicatest that the graph has been finalized.
bool is1DStructure () const
 Indicate that the structure is 1D.
bool is2DStructure () const
 Indicate that the structure is 2D.
bool isOptimized () const
 Indicate that the stucture is optimized.
void set1DStructure (ArrayRCP< Ordinal > inds, ArrayRCP< size_t > rowBegs, ArrayRCP< size_t > rowEnds)
 Submit the indices and offset for 1D storage.
void set2DStructure (ArrayRCP< ArrayRCP< Ordinal > > inds, ArrayRCP< size_t > numEntriesPerRow)
void get1DStructure (ArrayRCP< Ordinal > &inds, ArrayRCP< size_t > &rowBegs, ArrayRCP< size_t > &rowEnds)
 Retrieve the structure for 1D storage.
void get2DStructure (ArrayRCP< ArrayRCP< Ordinal > > &inds, ArrayRCP< size_t > &numEntriesPerRow)
 Retrieve the structure for 2D storage.
void finalize (bool OptimizeStorage)
 Finalize storage for the graph.
template<class Scalar >
void finalize (bool OptimizeStorage, ArrayRCP< ArrayRCP< Scalar > > &values2D, ArrayRCP< Scalar > &values1D)
 Finalize storage for the graph with associated matrix values.
virtual void clear ()
 Release data associated with this graph.

Detailed Description

template<class Ordinal, class Node, class LocalMatOps>
class Kokkos::CrsGraph< Ordinal, Node, LocalMatOps >

Kokkos compressed-row sparse graph class.

Default specialization is a host-bound CrsGraphHostCompute object.

Examples:

DummySparseKernelDriver.cpp.

Definition at line 1082 of file Kokkos_CrsGraph.hpp.


Member Function Documentation

template<class Ordinal , class Node , class LocalMatOps >
RCP< Node > Kokkos::CrsGraphHostCompute< Ordinal, Node, LocalMatOps >::getNode ( ) const [inherited]

Node accessor.

Definition at line 254 of file Kokkos_CrsGraph.hpp.

template<class Ordinal , class Node , class LocalMatOps >
size_t Kokkos::CrsGraphHostCompute< Ordinal, Node, LocalMatOps >::getNumRows ( ) const [inherited]

Return the number of rows in the graph.

Definition at line 260 of file Kokkos_CrsGraph.hpp.

template<class Ordinal , class Node , class LocalMatOps >
size_t Kokkos::CrsGraphHostCompute< Ordinal, Node, LocalMatOps >::getNumEntries ( ) const [inherited]

Return the number of entries in the graph.

Definition at line 266 of file Kokkos_CrsGraph.hpp.

template<class Ordinal , class Node , class LocalMatOps >
bool Kokkos::CrsGraphHostCompute< Ordinal, Node, LocalMatOps >::isEmpty ( ) const [inherited]

Indicates that the graph is filled, but empty.

Definition at line 272 of file Kokkos_CrsGraph.hpp.

template<class Ordinal , class Node , class LocalMatOps >
bool Kokkos::CrsGraphHostCompute< Ordinal, Node, LocalMatOps >::isFinalized ( ) const [inherited]

Indicatest that the graph has been finalized.

Definition at line 278 of file Kokkos_CrsGraph.hpp.

template<class Ordinal , class Node , class LocalMatOps >
bool Kokkos::CrsGraphHostCompute< Ordinal, Node, LocalMatOps >::is1DStructure ( ) const [inherited]

Indicate that the structure is 1D.

It will never be the case that both is1DStructure() and is2DStructure() return true.

Definition at line 284 of file Kokkos_CrsGraph.hpp.

template<class Ordinal , class Node , class LocalMatOps >
bool Kokkos::CrsGraphHostCompute< Ordinal, Node, LocalMatOps >::is2DStructure ( ) const [inherited]

Indicate that the structure is 2D.

It will never be the case that both is1DStructure() and is2DStructure() return true.

Definition at line 290 of file Kokkos_CrsGraph.hpp.

template<class Ordinal , class Node , class LocalMatOps >
bool Kokkos::CrsGraphHostCompute< Ordinal, Node, LocalMatOps >::isOptimized ( ) const [inherited]

Indicate that the stucture is optimized.

Definition at line 296 of file Kokkos_CrsGraph.hpp.

template<class Ordinal, class Node , class LocalMatOps >
void Kokkos::CrsGraphHostCompute< Ordinal, Node, LocalMatOps >::set1DStructure ( ArrayRCP< Ordinal >  inds,
ArrayRCP< size_t >  rowBegs,
ArrayRCP< size_t >  rowEnds 
) [inherited]

Submit the indices and offset for 1D storage.

Postcondition:
is1DStructure() == true

Definition at line 324 of file Kokkos_CrsGraph.hpp.

template<class Ordinal, class Node , class LocalMatOps >
void Kokkos::CrsGraphHostCompute< Ordinal, Node, LocalMatOps >::set2DStructure ( ArrayRCP< ArrayRCP< Ordinal > >  inds,
ArrayRCP< size_t >  numEntriesPerRow 
) [inherited]

Submit the indices for 2D storage.

Postcondition:
is2DStructure() == true

Definition at line 366 of file Kokkos_CrsGraph.hpp.

template<class Ordinal, class Node , class LocalMatOps >
void Kokkos::CrsGraphHostCompute< Ordinal, Node, LocalMatOps >::get1DStructure ( ArrayRCP< Ordinal > &  inds,
ArrayRCP< size_t > &  rowBegs,
ArrayRCP< size_t > &  rowEnds 
) [inherited]

Retrieve the structure for 1D storage.

If is1DStructure() == false, then

Postcondition:
inds == rowBegs == rowEnds == null

Otherwise,

Postcondition:
indices for row r are inds[r], where $r \in [b,e)$, where $b = rowBegs[r]$ and $e = rowEnds[r]$
rowBegs has getNumRows()+1 entries; the last entry is inds.size()
rowEnds has getNumRows() entries

Definition at line 302 of file Kokkos_CrsGraph.hpp.

template<class Ordinal, class Node , class LocalMatOps >
void Kokkos::CrsGraphHostCompute< Ordinal, Node, LocalMatOps >::get2DStructure ( ArrayRCP< ArrayRCP< Ordinal > > &  inds,
ArrayRCP< size_t > &  numEntriesPerRow 
) [inherited]

Retrieve the structure for 2D storage.

If is2DStructure() == false, then

Postcondition:
inds == numEntriesPerRow == null

Definition at line 313 of file Kokkos_CrsGraph.hpp.

template<class Ordinal , class Node , class LocalMatOps >
void Kokkos::CrsGraphHostCompute< Ordinal, Node, LocalMatOps >::finalize ( bool  OptimizeStorage) [inherited]

Finalize storage for the graph.

Instruct the graph to perform any necessary manipulation, including (optionally) optimizing the storage of the graph data.

Parameters:
OptimizeStorage[in] If true, permit the graph to reallocate storage on the host in order to provide optimal storage and/or performance.
Postcondition:
if OptimizeStorage == true, then is2DStructure() == true on return.

Reimplemented in Kokkos::CrsGraphDeviceCompute< Ordinal, Node, LocalMatOps >, Kokkos::FirstTouchHostCrsGraph< Ordinal, Node, LocalMatOps >, Kokkos::CrsGraphDeviceCompute< Ordinal, Node, DefaultDeviceSparseOps< S, Ordinal, Node > >, and Kokkos::CrsGraphDeviceCompute< Ordinal, Node, DefaultDeviceSparseOps< void, Ordinal, Node > >.

Definition at line 398 of file Kokkos_CrsGraph.hpp.

template<class Ordinal , class Node , class LocalMatOps >
template<class Scalar >
void Kokkos::CrsGraphHostCompute< Ordinal, Node, LocalMatOps >::finalize ( bool  OptimizeStorage,
ArrayRCP< ArrayRCP< Scalar > > &  values2D,
ArrayRCP< Scalar > &  values1D 
) [inherited]

Finalize storage for the graph with associated matrix values.

This is typically called from a CrsMatrix. It performs the finalize for the graph and the matrix at the same time, so the matrix doesn't have to. In that case, the Scalar template parameter here should be the same as CrsMatrix's Scalar template parameter.

Parameters:
OptimizeStorage[in] If true, permit the graph to reallocate storage on the host in order to provide optimal storage and/or performance.
values2D[in/out] 2D-structured matrix values. Required to be nonnull on input if is2DStructure() is true. Set to null on output if OptimizeStorage is true.
values1D[in/out] 1D-structured matrix values. Required to be nonnull on input if is1DStructure() is true. Allocated on output if OptimizeStorage is true.
Postcondition:
if OptimizeStorage == true or already is2DStructure(), then is2DStructure() == true.

Reimplemented in Kokkos::FirstTouchHostCrsGraph< Ordinal, Node, LocalMatOps >.

Definition at line 469 of file Kokkos_CrsGraph.hpp.

template<class Ordinal , class Node , class LocalMatOps >
void Kokkos::CrsGraphHostCompute< Ordinal, Node, LocalMatOps >::clear ( ) [virtual, inherited]

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends