SUBROUTINE SSKYMM( TRANSA, M, N, K, ALPHA, DESCRA, * VAL, PNTR, * B, LDB, BETA, C, LDC, WORK, LWORK ) INTEGER*4 TRANSA, M, N, K, DESCRA(5), * LDB, LDC, LWORK INTEGER*4 PNTR(*), REAL*4 ALPHA, BETA REAL*4 VAL(NNZ), B(LDB,*), C(LDC,*), WORK(LWORK) SUBROUTINE DSKYMM( TRANSA, M, N, K, ALPHA, DESCRA, * VAL, PNTR, * B, LDB, BETA, C, LDC, WORK, LWORK) INTEGER*4 TRANSA, M, N, K, DESCRA(5), * LDB, LDC, LWORK INTEGER*4 PNTR(*), REAL*8 ALPHA, BETA REAL*8 VAL(NNZ), B(LDB,*), C(LDC,*), WORK(LWORK) where NNZ = PNTR(M+1)-1 (upper triangular) NNZ = PNTR(K+1)-1 (lower triangular) PNTR() size = (M+1) (upper triangular) PNTR() size = (K+1) (lower triangular)
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 M Number of rows in matrix A N Number of columns in matrix C K Number of 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() array contain the nonzeros of A in skyline profile form. Row-oriented if DESCRA(2) = 1 (lower triangular), column oriented if DESCRA(2) = 2 (upper triangular). PNTR() integer array of length M+1 (lower triangular) or K+1 (upper triangular) such that PNTR(I)-PNTR(1)+1 points to the location in VAL of the first element of the skyline profile in row (column) I. 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/