For an overview, see Block Compressed Sparse Row (BCSR) Format.
Go to the source code of this file.
|Block compressed sparse row (BCSR) format. More...|
|BCSR/format.h included. |
|BCSR matrix representation. |
|Block compressed sparse row (BCSR) format. |
Block compressed sparse row (BCSR) format.
An matrix is stored in BCSR format using six arrays, . The triplet stores rows 1 through using uniformly aligned blocks, and the triplet stores any remaining rows using uniformly aligned blocks.
Define block-row to be rows through of , where . For each such that , is the column index entry of an explicitly stored non-zero block whose values are laid out in row-major order in the subarray .
These blocks are uniformly aligned, meaning that . However, there is one exception: 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.
If does not divide , then the remaining rows are stored in as a single block row with blocks. These arrays follow the same conventions as .