HP MLIB User's Guide Vol. 1 7th Ed.
Chapter 4 Sparse BLAS Operations 465
Block sparse column format triangular solve SBSCSM/DBSCSM/CBSCSM/ZBSCSM
Name SBSCSM/DBSCSM/CBSCSM/ZBSCSM
Block sparse column format triangular solve
Purpose Block sparse column format triangular solve. Given a scalar α, an upper- or
lower-triangular sparse matrix A, and a m-by-n matrix B with m=mb x lb, these
subprograms compute either of the matrix solutions αA
–1
B, or αDA
–1
B, or
αA
–1
DB, where D is a diagonal matrix. The size of A is m-by-m. Optionally, A
–1
may be replaced by A
–T
, or by A
–
*. Here, A
–T
is the transpose-inverse and A
–
*
is the conjugate-transpose-inverse of A. The solution matrix 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 solution matrix and the result matrix.
Specifically, these subprograms compute matrix solutions of the form
Usage VECLIB:
SUBROUTINE SBSCSM
INTEGER*4 transa, mb, n, unitd, blda, lb, ldb, ldc, lwork
INTEGER*4 descra(*), bindx(*), bpntrb(*), bpntre(*)
REAL*4 alpha, beta
REAL*4 val(*), b(ldb,*), c(ldc,*), work(*)
CALL SBSCSM (transa, mb, n, unitd, dv, alpha, descra, val, bindx,
bpntrb, bpntre, lb, b, ldb, beta, c, ldc, work, lwork)
SUBROUTINE DBSCSM
INTEGER*4 transa, mb, n, unitd, blda, lb, ldb, ldc, lwork
INTEGER*4 descra(*), bindx(*), bpntrb(*), bpntre(*)
REAL*8 alpha, beta
REAL*8 val(*), b(ldb,*), c(ldc,*), work(*)
CALL DBSCSM (transa, mb, n, unitd, dv, alpha, descra, val, bindx,
bpntrb, bpntre, lb, b, ldb, beta, c, ldc, work, lwork)
SUBROUTINE CBSCSM
INTEGER*4 transa, mb, n, unitd, blda, lb, ldb, ldc, lwork
INTEGER*4 descra(*), bindx(*), bpntrb(*), bpntre(*)
COMPLEX*8 alpha, beta
COMPLEX*8 val(*), b(ldb,*), c(ldc,*), work(*)
CALL CBSCSM (transa, mb, n, unitd, dv, alpha, descra, val, bindx,
bpntrb, bpntre, lb, b, ldb, beta, c, ldc, work, lwork)
C ←αA
–1
B +βC
C ←αA
–T
B +βCC←αA
–
*B +βC
C ←αDA
–1
B +βC
C ←αDA
–T
B +βCC←αDA
–
*B +βC
C ←αA
–1
DB +βC
C ←αA
–T
DB +βCC←αA
–
*DB +βC