struct layout::bcsr

BCSR-shaped tile-atom layout view (tile is a block-row).

Block Compressed Sparse Row (BCSR) compresses the matrix at the level of R-by-C dense blocks. The layout's offsets array indexes block-rows, and an atom is a block id (not a scalar nonzero): num_tiles == num_block_rows == ceil(rows / R) num_atoms == num_blocks (total stored R-by-C blocks) tile_size(

Defined in include/loops/container/layout.hxx

Template Parameters

ParameterDescription
tile_id_typeIndex type for tiles (block-row id).
atom_id_typeIndex type for atoms (block id).

Members

offsets_
n_tiles_ length num_tiles + 1.
n_atoms_

Methods

__host__ __device__ bcsr()
__host__ __device__ bcsr(atom_id_t const *offsets, tile_id_t num_tiles, atom_id_t num_atoms)
__host__ __device__ tile_id_t num_tiles( const)
__host__ __device__ atom_id_t num_atoms( const)
__host__ __device__ atom_id_t tile_begin(tile_id_t t) const)
__host__ __device__ atom_id_t tile_end(tile_id_t t) const)
__host__ __device__ atom_id_t tile_size(tile_id_t t) const)
__host__ __device__ tile_end_iterator_t tile_end_iter( const)
__host__ __device__ tile_id_t tile_of(atom_id_t a) const)