#include <oski/matmodexport.h>
Go to the source code of this file.
Name mangling. | |
#define | oski_WrapCSR MANGLE_MOD_(oski_WrapCSR) |
#define | oski_CheckCSR MANGLE_MOD_(oski_CheckCSR) |
#define | oski_StreamMatRepr MANGLE_MOD_(oski_StreamMatRepr) |
#define | oski_SortIndices MANGLE_MOD_(oski_SortIndices) |
#define | oski_ExpandCSRToFull MANGLE_MOD_(oski_ExpandCSRToFull) |
#define | oski_ConditionallyExpandCSRToFull MANGLE_MOD_(oski_ConditionallyExpandCSRToFull) |
#define | oski_ChangeIndexBase MANGLE_MOD_(oski_ChangeIndexBase) |
#define | oski_TransposeCSR MANGLE_MOD_(oski_TransposeCSR) |
#define | oski_CountZeroRowsCSR MANGLE_MOD_(oski_CountZeroRowsCSR) |
CSR-based sparse triangular solve kernel driver mangling. | |
#define | CSR_MatTrisolveLower MANGLE_(CSR_MatTrisolveLower) |
#define | CSR_MatTransTrisolveLower MANGLE_(CSR_MatTransTrisolveLower) |
#define | CSR_MatConjTrisolveLower MANGLE_(CSR_MatConjTrisolveLower) |
#define | CSR_MatConjTransTrisolveLower MANGLE_(CSR_MatConjTransTrisolveLower) |
#define | CSR_MatTrisolveUpper MANGLE_(CSR_MatTrisolveUpper) |
#define | CSR_MatTransTrisolveUpper MANGLE_(CSR_MatTransTrisolveUpper) |
#define | CSR_MatConjTrisolveUpper MANGLE_(CSR_MatConjTrisolveUpper) |
#define | CSR_MatConjTransTrisolveUpper MANGLE_(CSR_MatConjTransTrisolveUpper) |
CSR wrapper. | |
oski_matCSR_t * | oski_WrapCSR (oski_matcommon_t *out_props, oski_index_t *Aptr, oski_index_t *Aind, oski_value_t *Aval, oski_index_t num_rows, oski_index_t num_cols, oski_inmatpropset_t *props, oski_copymode_t mode) |
Create a new CSR-specific wrapper around a raw CSR array representation. | |
CSR-based sparse triangular solve kernel drivers. | |
void | CSR_MatTrisolveLower (oski_index_t m, oski_index_t indbase, int is_unit, int is_sorted, const oski_index_t *ptr, const oski_index_t *ind, const oski_value_t *val, oski_value_t alpha, oski_value_t *x, oski_index_t num_vecs, oski_index_t rowinc, oski_index_t colinc) |
void | CSR_MatConjTrisolveLower (oski_index_t m, oski_index_t indbase, int is_unit, int is_sorted, const oski_index_t *ptr, const oski_index_t *ind, const oski_value_t *val, oski_value_t alpha, oski_value_t *x, oski_index_t num_vecs, oski_index_t rowinc, oski_index_t colinc) |
void | CSR_MatTransTrisolveLower (oski_index_t m, oski_index_t indbase, int is_unit, int is_sorted, const oski_index_t *ptr, const oski_index_t *ind, const oski_value_t *val, oski_value_t alpha, oski_value_t *x, oski_index_t num_vecs, oski_index_t rowinc, oski_index_t colinc) |
void | CSR_MatConjTransTrisolveLower (oski_index_t m, oski_index_t indbase, int is_unit, int is_sorted, const oski_index_t *ptr, const oski_index_t *ind, const oski_value_t *val, oski_value_t alpha, oski_value_t *x, oski_index_t num_vecs, oski_index_t rowinc, oski_index_t colinc) |
void | CSR_MatTrisolveUpper (oski_index_t m, oski_index_t indbase, int is_unit, int is_sorted, const oski_index_t *ptr, const oski_index_t *ind, const oski_value_t *val, oski_value_t alpha, oski_value_t *x, oski_index_t num_vecs, oski_index_t rowinc, oski_index_t colinc) |
void | CSR_MatTransTrisolveUpper (oski_index_t m, oski_index_t indbase, int is_unit, int is_sorted, const oski_index_t *ptr, const oski_index_t *ind, const oski_value_t *val, oski_value_t alpha, oski_value_t *x, oski_index_t num_vecs, oski_index_t rowinc, oski_index_t colinc) |
void | CSR_MatConjTrisolveUpper (oski_index_t m, oski_index_t indbase, int is_unit, int is_sorted, const oski_index_t *ptr, const oski_index_t *ind, const oski_value_t *val, oski_value_t alpha, oski_value_t *x, oski_index_t num_vecs, oski_index_t rowinc, oski_index_t colinc) |
void | CSR_MatConjTransTrisolveUpper (oski_index_t m, oski_index_t indbase, int is_unit, int is_sorted, const oski_index_t *ptr, const oski_index_t *ind, const oski_value_t *val, oski_value_t alpha, oski_value_t *x, oski_index_t num_vecs, oski_index_t rowinc, oski_index_t colinc) |
Defines | |
#define | INC_OSKI_CSR_MODULE_H |
oski/CSR/module.h included. | |
Functions | |
int | oski_CheckCSR (const oski_index_t *ptr, const oski_index_t *ind, oski_index_t m, oski_index_t n, oski_inmatpropset_t *props) |
Verify that a CSR matrix representation satisfies asserted properties. | |
double | oski_StreamMatRepr (const void *mat, const oski_matcommon_t *props) |
Stream through a matrix. | |
oski_matCSR_t * | oski_ExpandCSRToFull (const oski_matCSR_t *S, const oski_matcommon_t *props) |
Convert a half-storage symmetric or Hermitian matrix to full storage. | |
int | oski_ConditionallyExpandCSRToFull (const oski_matCSR_t *S, const oski_matcommon_t *props, oski_matCSR_t **p_mat_full) |
Conditionally convert a half-storage symmetric or Hermitian matrix to full storage. | |
void | oski_ChangeIndexBase (oski_matCSR_t *A, const oski_matcommon_t *props, const oski_index_t new_base) |
Change the index base of a matrix. | |
int | oski_SortIndices (oski_matCSR_t *A, oski_index_t m) |
Sort the column indices of a CSR matrix with m rows using b-based indexing. | |
oski_matCSR_t * | oski_TransposeCSR (const oski_matCSR_t *A, const oski_matcommon_t *props) |
Given a matrix in CSR format, returns a copy of its explicit transpose in CSR format. | |
oski_index_t | oski_CountZeroRowsCSR (const oski_matCSR_t *A, const oski_matcommon_t *props) |
Returns the number of rows in a given CSR matrix that contain no structural non-zeros. |
|
Verify that a CSR matrix representation satisfies asserted properties. This routine verifies that the following properties, if asserted, are true:
The implementation relies on O(nnz) algorithms to verify these properties. If any of the properties can be strengthened to improve kernel performance, then the properties are modified to reflect the stronger assertion. There are two specific examples:
|
|
Sort the column indices of a CSR matrix with m rows using b-based indexing.
|
|
Stream through a matrix. This routine streams through the matrix data structure, performs some dummy computations, and returns the results. We use this routine to help estimate the cost of a matrix-vector multiply operation on a given matrix without actually having to perform matrix-vector multiply. |
|
Given a matrix in CSR format, returns a copy of its explicit transpose in CSR format.
|
|
Create a new CSR-specific wrapper around a raw CSR array representation. If any of the asserted properties can be strengthened, then the parameter props (below) is changed accordingly. See oski_CheckCSR() for details.
Basic steps:
|