For an overview, see Modified Block Compressed Sparse Row (MBCSR) Format.
#include <oski/common.h>
#include <oski/matrix.h>
#include <oski/BCSR/format.h>
Go to the source code of this file.
Data Structures | |
struct | tagOski_submatMBCSR_t |
Stores an MBCSR "submatrix". More... | |
struct | tagBebop_matMBCSR_t |
Modified block compressed sparse row (MBCSR) format. More... | |
#define | INC_OSKI_MBCSR_FORMAT_H |
oski/MBCSR/format.h included. | |
Name mangling. | |
#define | oski_submatMBCSR_t MANGLE_(oski_submatMBCSR_t) |
MBCSR matrix representation. | |
#define | oski_matMBCSR_t MANGLE_(oski_matMBCSR_t) |
MBCSR matrix representation. | |
#define | oski_MBCSR_MatMult_funcpt MANGLE_(oski_MBCSR_MatMult_funcpt) |
MBCSR matrix representation. | |
Typedefs | |
typedef tagOski_submatMBCSR_t | oski_submatMBCSR_t |
Stores an MBCSR "submatrix". | |
typedef tagBebop_matMBCSR_t | oski_matMBCSR_t |
Modified block compressed sparse row (MBCSR) format. |
|
Modified block compressed sparse row (MBCSR) format. An matrix stored in MBCSR format is logically partitioned row-wise into 3 submatrices, , where is stored in MBCSR format. This partitioning is a `canonical' format in which , , and have the following properties:
The purpose of this format is to enable fast implementations of the triangular solve and kernels in which the `special case' code to handle degenerate diagonal block, if any, is stored separately in , and multiplication by and can execute at `full' speed. The canonical form provides a uniform way to treat both square and rectangular matrices stored in MBCSR format. |
|
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:
|