SUBROUTINE SJADSM( TRANSA, M, N, UNITD, DV, ALPHA, DESCRA, * VAL, INDX, PNTR, MAXNZ, IPERM, * B, LDB, BETA, C, LDC, WORK, LWORK ) INTEGER*4 TRANSA, M, N, UNITD, DESCRA(5), MAXNZ, * LDB, LDC, LWORK INTEGER*4 INDX(NNZ), PNTR(MAXNZ+1), IPERM(M) REAL*4 ALPHA, BETA REAL*4 DV(NDV), VAL(NNZ), B(LDB,*), C(LDC,*), WORK(LWORK) SUBROUTINE DJADSM( TRANSA, M, N, UNITD, DV, ALPHA, DESCRA, * VAL, INDX, PNTR, MAXNZ, IPERM, * B, LDB, BETA, C, LDC, WORK, LWORK) INTEGER*4 TRANSA, M, N, UNITD, DESCRA(5), MAXNZ, * LDB, LDC, LWORK INTEGER*4 INDX(NNZ), PNTR(MAXNZ+1), IPERM(M) REAL*8 ALPHA, BETA REAL*8 DV(NDV), VAL(NNZ), B(LDB,*), C(LDC,*), WORK(LWORK)
C <- alpha D inv(A) B + beta C C <- alpha D inv(A') B + beta C
C <- alpha inv(A) D B + beta C C <- alpha inv(A') D B + beta C
( ' indicates matrix transpose)
TRANSA Indicates how to operate with the sparse matrix
0 : operate with matrix
1 : operate with transpose matrix
M Number of rows in matrix A
N Number of columns in matrix C
UNITD Type of scaling:
1 : Identity matrix (argument DV[] is ignored)
2 : Scale on left (row scaling)
3 : Scale on right (column scaling)
DV() Array containing the diagonal entries of the (block)
diagonal matrix D.
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
1 : lower
2 : upper
DESCRA(3) main diagonal type
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() array of length NNZ consisting of entries of A.
VAL can be viewed as a column major ordering of a
row permutation of the Ellpack representation of A,
where the Ellpack representation is permuted so that
the rows are non-increasing in the number of nonzero
entries. Values added for padding in Ellpack are
not included in the Jagged-Diagonal format.
INDX() array of length NNZ consisting of the column indices
of the corresponding entries in VAL.
PNTR() array of length MAXNZ+1, where PNTR(I)-PNTR(1)+1
points to the location in VAL of the first element
in the row-permuted Ellpack represenation of A.
MAXNZ max number of nonzeros elements per row.
IPERM() integer array of length M such that I = IPERM(I'),
where row I in the original Ellpack representation
corresponds to row I' in the permuted representation.
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(M,N).
LWORK length of WORK array
http://math.nist.gov/mcsd/Staff/KRemington/fspblas/