#include <Kokkos_HbMatrix.hpp>
Public Member Functions | |
Constructors/Destructor | |
HbMatrix (void) | |
Default HbMatrix constuctor. | |
HbMatrix (const HbMatrix &source) | |
Copy constructor. | |
virtual | ~HbMatrix () |
HbMatrix Destructor. | |
Classical Harwell-Boeing Format Initialization Methods | |
int | initializeStructure (OrdinalType numRows, OrdinalType numCols, bool isRowOriented, OrdinalType *pntr, OrdinalType *indx) |
Initialize structure of matrix (Classical Harwell-Boeing Format). | |
int | initializeValues (ScalarType *values) |
Initialize structure of matrix (Classical Harwell-Boeing Format). | |
Generalized Harwell-Boeing Format Initialization Methods | |
int | initializeStructure (OrdinalType numRows, OrdinalType numCols, bool isRowOriented, OrdinalType *profile, OrdinalType **indx) |
Initialize structure of matrix (Generalized Harwell-Boeing Format). | |
int | initializeValues (ScalarType **values) |
Initialize structure of matrix (Generalized Harwell-Boeing Format). | |
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. | |
Matrix Attribute set methods | |
virtual int | setIsUpperTriangular (bool tf) |
Set whether or not the compressed index matrix has no entries below the diagonal, assumed false. | |
virtual int | setIsLowerTriangular (bool tf) |
Set whether or not the compressed index matrix has no entries above the diagonal, assumed false. | |
virtual int | setHasDiagonalEntries (bool tf) |
Set whether or not the compressed index matrix has explicit diagonal entries. | |
virtual int | setHasImplicitUnitDiagonal (bool tf) |
Set whether or not the compressed index matrix should be treated as unit diagonal, assumed false. | |
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 | getIsClassicHbMatrix () const |
Returns true if the compressed index matrix was formed using a classic HB matrix. | |
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. | |
Protected Attributes | |
OrdinalType | numRows_ |
OrdinalType | numCols_ |
OrdinalType | numEntries_ |
ScalarType ** | values_ |
ScalarType * | allValues_ |
OrdinalType ** | indices_ |
OrdinalType * | allIndices_ |
OrdinalType * | pntr_ |
OrdinalType * | profile_ |
bool | isRowOriented_ |
bool | isUpperTriangular_ |
bool | isLowerTriangular_ |
bool | hasImplicitUnitDiagonal_ |
bool | hasDiagonalEntries_ |
bool | isClassicHbMatrix_ |
The Kokkos::HbMatrix implements the Kokkos::CisMatrix interface using either a Harwell-Boeing matrix or generalized form of one.
int HbMatrix::checkStructure | ( | ) | const [inline, virtual] |
Check if the matrix structure is valid for user-assertion of Upper/Lower Triangular and implicit unit diagonal.
int HbMatrix::getIndices | ( | OrdinalType | i, | |
OrdinalType & | numRowEntries, | |||
OrdinalType *& | indices | |||
) | const [inline, 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.
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. |
Implements Kokkos::CisMatrix< OrdinalType, ScalarType >.
int HbMatrix::getValues | ( | OrdinalType | i, | |
ScalarType *& | values | |||
) | const [inline, 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.
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. |
Implements Kokkos::CisMatrix< OrdinalType, ScalarType >.
int HbMatrix::initializeStructure | ( | OrdinalType | numRows, | |
OrdinalType | numCols, | |||
bool | isRowOriented, | |||
OrdinalType * | profile, | |||
OrdinalType ** | indx | |||
) | [inline] |
Initialize structure of matrix (Generalized Harwell-Boeing Format).
This interface supports matrices that are stored in a generalized Harwell-Boeing format.
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. | |
profile | (In) Array of index counts for indx. pntr[i] equals the number of entries in the ith row (if isRowOriented is true) or ith column (if isRowOriented is false). | |
indx | (In) An array of pointers to arrays of indices. indx[i][0] contains the first index of the ith row (if isRowOriented is true) or ith column (if isRowOriented is false). |
int HbMatrix::initializeStructure | ( | OrdinalType | numRows, | |
OrdinalType | numCols, | |||
bool | isRowOriented, | |||
OrdinalType * | pntr, | |||
OrdinalType * | indx | |||
) | [inline] |
Initialize structure of matrix (Classical Harwell-Boeing Format).
This interface supports matrices that are stored in the classical Harwell-Boeing format.
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). |
int HbMatrix::initializeValues | ( | ScalarType ** | values | ) | [inline] |
Initialize structure of matrix (Generalized Harwell-Boeing Format).
This interface supports matrices that are stored in the classical Harwell-Boeing format.
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). |
int HbMatrix::initializeValues | ( | ScalarType * | values | ) | [inline] |
Initialize structure of matrix (Classical Harwell-Boeing Format).
This interface supports matrices that are stored in the classical Harwell-Boeing format.
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). |
virtual int Kokkos::HbMatrix< OrdinalType, ScalarType >::setHasImplicitUnitDiagonal | ( | bool | tf | ) | [inline, virtual] |
Set whether or not the compressed index matrix should be treated as unit diagonal, assumed false.