Kokkos::OskiMatrix< OrdinalType, ScalarType > Class Template Reference

Kokkos::OskiMatrix: Kokkos OSKI compressed index sparse matrix class. More...

#include <Kokkos_OskiMatrix.hpp>

Inheritance diagram for Kokkos::OskiMatrix< OrdinalType, ScalarType >:

[legend]
Collaboration diagram for Kokkos::OskiMatrix< OrdinalType, ScalarType >:
[legend]
List of all members.

Public Member Functions

Constructors/Destructor.
 OskiMatrix (void)
 Default OskiMatrix constuctor.
 OskiMatrix (const OskiMatrix &source)
 Copy constructor.
virtual ~OskiMatrix ()
 HbMatrix Destructor.
OskiMatrix Initialization Methods
int initializeStructure (OrdinalType numRows, OrdinalType numCols, bool isRowOriented, OrdinalType *pntr, OrdinalType *indx, oski_inmatprop_t type=MAT_GENERAL, bool diagExplicit=true, int indexBase=0, bool indexUnsorted=true, bool indexRepeated=true)
 Initialize structure of the matrix.
int initializeValues (ScalarType *values)
 Initialize matrix values.
Matrix Format Initialization Methods
int initializeValues (ScalarType **values)
 Initialize structure of matrix.
Matrix entry access methods.
int getIndices (OrdinalType i, OrdinalType &numRowEntries, OrdinalType *&indices) const
 Returns number of entries in ith row/column, and pointer to an array of these indices.
int getValues (OrdinalType i, ScalarType *&values) const
 Returns a pointer to an array of values for the ith row/column.
Validity tests.
virtual int checkStructure () const
 Check if the matrix structure is valid for user-assertion of Upper/Lower Triangular and implicit unit diagonal.
Matrix Attribute access methods.
bool getIsRowOriented () const
 Returns true if the compressed index matrix should be interpreted as a row matrix.
virtual bool getIsUpperTriangular () const
 Returns true if the compressed index matrix has no entries below the diagonal.
virtual bool getIsLowerTriangular () const
 Returns true if the compressed index matrix has no entries above the diagonal.
virtual bool getHasImplicitUnitDiagonal () const
 Returns true if the compressed index matrix has no diagonal entries, but should be treated as unit diagonal.
OrdinalType getNumRows () const
 Number of rows.
OrdinalType getNumCols () const
 Number of columns.
OrdinalType getNumEntries () const
 Number of matrix entries.
oski_matrix_t getA_tunable () const
 Underlying OSKI Matrix.

Protected Attributes

oski_matrix_t A_tunable_
bool dataInitialized_
OrdinalType numRows_
OrdinalType numCols_
OrdinalType numEntries_
ScalarType * allValues_
OrdinalType ** indices_
OrdinalType * allIndices_
OrdinalType * pntr_
bool isRowOriented_
bool hasDiagonalEntries_
oski_inmatprop_t matrixType_
oski_inmatprop_t diagExplicit_
oski_inmatprop_t indexBase_
oski_inmatprop_t indexUnsorted_
oski_inmatprop_t indexRepeated_
bool isOskiMatrix_

Detailed Description

template<typename OrdinalType, typename ScalarType>
class Kokkos::OskiMatrix< OrdinalType, ScalarType >

Kokkos::OskiMatrix: Kokkos OSKI compressed index sparse matrix class.

The Kokkos::OskiMatrix implements the Kokkos::CisMatrix interface. SAY MORE HERE


Member Function Documentation

template<typename OrdinalType, typename ScalarType>
int OskiMatrix::checkStructure  )  const [virtual]
 

Check if the matrix structure is valid for user-assertion of Upper/Lower Triangular and implicit unit diagonal.

Returns:
Integer error code, equals zero if structure is valid, negative value means potential fatal assertion. Error codes:
  • -1 - User asserts upper triangular, but it's not.
  • 1 - User does not assert upper triangular, but it is.
  • -2 - User asserts lower triangular, but it's not.
  • 2 - User does not assert lower triangular, but it is.
  • -3 - User asserts implicit unit diagonal, but values are given.

template<typename OrdinalType, typename ScalarType>
int OskiMatrix::getIndices OrdinalType  i,
OrdinalType &  numRowEntries,
OrdinalType *&  indices
const [virtual]
 

Returns number of entries in ith row/column, and pointer to an array of these indices.

Extract the number of entries and a pointer to the indices in the ith row/column of the matrix. Note that the indices are not copied by this method. Memory allocation is handled by the matrix object itself.

Parameters:
i (In) The row (if isRowOriented() is true) or column that should be returned.
numRowEntries (Out) The number of entries in the ith row/column.
indices (Out) A pointer to the list of indices in the ith row/column.
Returns:
Integer error code, set to 0 if successful.

Implements Kokkos::CisMatrix< OrdinalType, ScalarType >.

template<typename OrdinalType, typename ScalarType>
int OskiMatrix::getValues OrdinalType  i,
ScalarType *&  values
const [virtual]
 

Returns a pointer to an array of values for the ith row/column.

Extract the values in the ith row/column of the matrix. Note that the values are not copied by this method. Memory allocation is handled by the matrix object itself.

Parameters:
i (In) The row (if isRowOriented() is true) or column that should be returned.
numEntries (Out) The number of entries in the ith row/column.
indices (Out) A pointer to the list of indices in the ith row/column.
Returns:
Integer error code, set to 0 if successful.

Implements Kokkos::CisMatrix< OrdinalType, ScalarType >.

template<typename OrdinalType, typename ScalarType>
int OskiMatrix::initializeStructure OrdinalType  numRows,
OrdinalType  numCols,
bool  isRowOriented,
OrdinalType *  pntr,
OrdinalType *  indx,
oski_inmatprop_t  type = MAT_GENERAL,
bool  diagExplicit = true,
int  indexBase = 0,
bool  indexUnsorted = true,
bool  indexRepeated = true
 

Initialize structure of the matrix.

Parameters:
numRows (In) Row dimension.
numCols (In) Column dimension.
isRowOriented - (In) If true, the compressed index storage will be interpreted as row indices. If false, then indices will be interpreted as column indices.
pntr (In) Array of offsets into indx. indx[pntr[i]] contains the first index of the ith row (if isRowOriented is true) or ith column (if isRowOriented is false).
indx (In) Packed array of indices. indx[pntr[i]] contains the first index of the ith row (if isRowOriented is true) or ith column (if isRowOriented is false).
type (In) Matrix type. OSKI supports: MAT_GENERAL (default), MAT_TRI_UPPER, MAT_TRI_LOWER, MAT_SYMM_UPPER, MAT_SYMM_LOWER, MAT_SYMM_FULL, MAT_HERM_UPPER, MAT_HERM_LOWER, MAT_HERM_FULL.
diagExplicit (In) Non-zero diagonal entries are specified explicitly (default true). False implies all diagonal entries are implicitly zero.
indexBase (In) Array indicies can start at zero (default) or one.
indexUnsorted (In) Indices within each row (column) appear in any order (default: true). False indicates indices are sorted in increasing order.
indexRepeated (In) Indicies may appear multiple times (default: true). False indicates all indices are unique.
Returns:
Integer error code, set to 0 if successful.

template<typename OrdinalType, typename ScalarType>
int Kokkos::OskiMatrix< OrdinalType, ScalarType >::initializeValues ScalarType **  values  ) 
 

Initialize structure of matrix.

Parameters:
values (In) An array of pointers to arrays of matrix values. values[[i][0] contains the first entry of the ith row (if isRowOriented is true) or ith column (if isRowOriented is false).
Returns:
Integer error code, set to 0 if successful.

template<typename OrdinalType, typename ScalarType>
int OskiMatrix::initializeValues ScalarType *  values  ) 
 

Initialize matrix values.

Parameters:
values (In) Packed array of matrix values. values[pntr[i]] contains the first entry of the ith row (if isRowOriented is true) or ith column (if isRowOriented is false).
Returns:
Integer error code, set to 0 if successful.


The documentation for this class was generated from the following file:
Generated on Thu Sep 18 12:37:00 2008 for Kokkos by doxygen 1.3.9.1