#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... | |
Defines | |
#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 struct tagOski_submatMBCSR_t | oski_submatMBCSR_t |
Stores an MBCSR "submatrix". | |
typedef struct tagBebop_matMBCSR_t | oski_matMBCSR_t |
Modified block compressed sparse row (MBCSR) format. |
For an overview, see Modified Block Compressed Sparse Row (MBCSR) Format.
typedef struct tagBebop_matMBCSR_t oski_matMBCSR_t |
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.
typedef struct tagOski_submatMBCSR_t oski_submatMBCSR_t |
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: