HP MLIB User's Guide Vol. 1 7th Ed.

Chapter 4 Sparse BLAS Operations 435
What you need to know to use these subprograms
bpntrb(*) - Integer array of length mb such that bpntrb(j) points to location
val(:, :, j) of the first nonzero block in block row j.
bpntre(*) - Integer array of length mb such that pntre(j)-1 points to location
val(:, :, j) of the last nonzero block in block row j.
The matrix in Table 4-17 could be represented in BSR format as:
Table 4-19 BSR Format Matrix
BMR - Block modified sparse row. The BMR format is a variation of the
BSR format obtained by storing the main diagonal of the matrix in a specific
array bdiag:
bdiag(lb, lb, *) - Scalar matrix of dimension lb-by-lb-by-d containing the
main diagonal of A, where d=min(mb, kb) is the number of blocks forming
the main diagonal.
BDI- Block sparse diagonal. Given a sparse block matrix A formed by
mb-by-kb square blocks of size lb-by-lb each and with nbdiag nonzero block
diagonals, the block compressed sparse diagonal format represents the nonzero
block diagonals of A using the same variables as in the DIA format. Each
nonzero dense block is stored in column major order. Two arrays are required
for the BDI representation:
bindx= 1323
bpntrb= 13
bpntre= 34
val(1:2, 1:2, 1)= 11 12
21 22
val(1:2, 1:2, 2)= 15 16
25 26
val(1:2, 1:2, 3)= 33 0
43 44
val(1:2, 1:2, 4)= 35 36
046