SUBROUTINE SBDIMM( TRANSA, MB, N, KB, ALPHA, DESCRA, * VAL, BLDA, IBDIAG, NBDIAG, LB, * B, LDB, BETA, C, LDC, WORK, LWORK ) INTEGER*4 TRANSA, MB, N, KB, DESCRA(5), BLDA, NBDIAG, LB, * LDB, LDC, LWORK INTEGER*4 IBDIAG(NBDIAG) REAL*4 ALPHA, BETA REAL*4 VAL(LB*LB*BLDA*NBDIAG), B(LDB,*), C(LDC,*), WORK(LWORK) SUBROUTINE DBDIMM( TRANSA, MB, N, KB, ALPHA, DESCRA, * VAL, BLDA, IBDIAG, NBDIAG, LB, * B, LDB, BETA, C, LDC, WORK, LWORK) INTEGER*4 TRANSA, MB, N, KB, DESCRA(5), BLDA, NBDIAG, LB, * LDB, LDC, LWORK INTEGER*4 IBDIAG(NBDIAG) REAL*8 ALPHA, BETA REAL*8 VAL(LB*LB*BLDA*NBDIAG), B(LDB,*), C(LDC,*), WORK(LWORK)
C <- alpha A B + beta C
C <- alpha A'B + beta C
( ' indicates matrix transpose)
TRANSA Indicates how to operate with the sparse matrix
0 : operate with matrix
1 : operate with transpose matrix
MB Number of block rows in matrix A
N Number of columns in matrix C
KB Number of block columns in matrix A
ALPHA Scalar parameter
DESCRA() Descriptor argument. Five element integer array
DESCRA(1) matrix structure
0 : general
1 : symmetric
2 : Hermitian
3 : Triangular
4 : Skew(Anti)-Symmetric
5 : Diagonal
DESCRA(2) upper/lower triangular indicator (NOT IMPLEMENTED)
1 : lower
2 : upper
DESCRA(3) main diagonal type (NOT IMPLEMENTED)
0 : non-unit
1 : unit
DESCRA(4) Array base (NOT IMPLEMENTED)
0 : C/C++ compatible
1 : Fortran compatible
DESCRA(5) repeated indices? (NOT IMPLEMENTED)
0 : unknown
1 : no repeated indices
VAL() scalar array of length LB*LB*BLDA*NBDIAG containing
matrix entries, stored column-major within each dense
block.
BLDA leading block dimension of VAL().
IBDIAG() integer array of length NBDIAG consisting of the
corresponding indices of the non-zero block
diagonals of A in VAL().
NBDIAG the number of non-zero block diagonals in A.
LB dimension of dense blocks composing A.
B() rectangular array with first dimension LDB.
LDB leading dimension of B
BETA Scalar parameter
C() rectangular array with first dimension LDC.
LDC leading dimension of C
WORK() scratch array of length LWORK. LWORK should be at least
MAX(MB*LB*LB,N).
LWORK length of WORK array
http://math.nist.gov/mcsd/Staff/KRemington/fspblas/