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/