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

Chapter 4 Sparse BLAS Operations 513
Jagged diagonal matrix-matrix multiply SJADMM/DJADMM/CJADMM/ZJADMM
Name SJADMM/DJADMM/CJADMM/ZJADMM
Jagged diagonal matrix-matrix multiply
Purpose Jagged diagonal matrix-matrix multiply. These subprograms compute the
matrix-matrix product AB, where A is a m-by-k sparse matrix, and B is a k-by-n
matrix. Optionally, A may be replaced by A
T
or A*, where A
T
or A* is a k-by-m
matrix, and B is a m-by-n matrix. Here A
T
is the transpose and A* is the
conjugate-transpose of A. The product may be stored in the result matrix C or
optionally may be added to or subtracted from it. This is handled in a
convenient, but general way by two scalar arguments, α and β, which are used
as multipliers of the matrix product and the result matrix. Specifically, these
subprograms compute matrix products of the form
Usage VECLIB:
SUBROUTINE SJADMM
INTEGER*4 transa, m, n, k, maxnz, ldb, ldc, lwork
INTEGER*4 descra(*), indx(*), pntr(*), iperm(*)
REAL*4 alpha, beta
REAL*4 val(*), b(ldb,*), c(ldc,*), work(*)
CALL SJADMM (transa, m, n, k, alpha, descra, val, pntr, iperm, indx,
maxnz, b, ldb, beta, c, ldc, work, lwork)
SUBROUTINE DJADMM
INTEGER*4 transa, m, n, k, maxnz, ldb, ldc, lwork
INTEGER*4 descra(*), indx(*), pntr(*), iperm(*)
REAL*8 alpha, beta
REAL*8 val(*), b(ldb,*), c(ldc,*), work(*)
CALL DJADMM (transa, m, n, k, alpha, descra, val, pntr, iperm, indx,
maxnz, b, ldb, beta, c, ldc, work, lwork)
SUBROUTINE CJADMM
INTEGER*4 transa, m, n, k, maxnz, ldb, ldc, lwork
INTEGER*4 descra(*), indx(*), pntr(*), iperm(*)
COMPLEX*8 alpha, beta
COMPLEX*8 val(*), b(ldb,*), c(ldc,*), work(*)
CALL CJADMM (transa, m, n, k, alpha, descra, val, pntr, iperm indx,
maxnz, b, ldb, beta, c, ldc, work, lwork)
C ←αAB C
C ←αA
T
B C
C ←αA
B C