tagOski_submatMBCSR_t Struct Reference
Stores an MBCSR "submatrix".
An matrix stored in MBCSR submatrix format must satisfy the following conditions:
Let be the number of block rows. Then is stored in 4 arrays, , as follows:
- is an array of length containing all the elements of that lie within the diagonal blocks beginning at element where each block is a square block. The blocks are stored consecutively, and each block is stored in row-major order. More precisely, for all , , and , the array element stores the matrix element .
- is an integer array of block-row pointers, of length at least .
- is an integer array of block column indices, of length at least .
- is an array of non-zero block values, of length at least .
- Define block-row , where , as rows through of . Then For each such that , is the column index of the entry of an explicitly stored non-zero block whose values are laid out in row-major order in the subarray .
- If any block in overlaps with a diagonal block in , then the corresponding entries in are set to 0.
- No block in is defined so that it extends beyond column of . That is, if does not divide , then each block row may contain one block with . If such a block overlaps with another block starting at column index , then the initial columns of the block at are set to zero.
| ||# of full block rows; if 0, all other fields are invalid. |
| ||Row/column index of first diagonal block. |
| ||Row block size. |
| ||Column block size. |
oski_index_t * ||bptr|
| ||Block row pointers. |
oski_index_t * ||bind|
| ||Column indices. |
oski_value_t * ||bval|
| ||Non-zero value off-diagonal blocks. |
oski_value_t * ||bdiag|
| ||Non-zero value diagonal blocks. |
char * ||mod_name|
| ||Name of module at this block size. |
void * ||mod_cached|
| ||Cached implementation. |
The documentation for this struct was generated from the following file:
Generated on Wed Sep 19 16:41:23 2007 for BeBOP Optimized Sparse Kernel Interface Library by