For an overview, see Block Compressed Sparse Row (BCSR) Format.
#include <oski/common.h>
#include <oski/matrix.h>
Go to the source code of this file.
Data Structures | |
struct | tagBebop_matBCSR_t |
Block compressed sparse row (BCSR) format. More... | |
#define | INC_OSKI_BCSR_FORMAT_H |
BCSR/format.h included. | |
Name mangling. | |
#define | oski_matBCSR_t MANGLE_(oski_matBCSR_t) |
BCSR matrix representation. | |
Typedefs | |
typedef tagBebop_matBCSR_t | oski_matBCSR_t |
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 . |