Compressed sparse row format triangular solve

SCSRSM/DCSRSM/CCSRSM/ZCSRSM

Name SCSRSM/DCSRSM/CCSRSM/ZCSRSM

Compressed sparse row format triangular solve

Purpose Compressed sparse row format triangular solve. Given a scalar α, an upper- or lower-triangular sparse matrix A, and a m-by-nmatrix B, these subprograms compute either of the matrix solutions αA–1B, or αDA–1B, or αA–1DB, where D

is a diagonal matrix. The size of A is m-by-m. Optionally, A–1may be replaced by A–T, or by A*. Here, A–Tis 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

C αA–1B + βC

C αA–TB + βC

C αA*B + βC

C αDA–1B + βC C αDA–TB + βC

C αDA*B + βC

C αA–1DB + βC

C αATDB + βC

C αA*DB + βC

Usage

VECLIB:

 

 

SUBROUTINE

SCSRSM

 

INTEGER*4

transa, m, n, unitd, ldb, ldc, lwork

 

INTEGER*4

descra(*), indx(*), pntrb(*), pntre(*)

 

REAL*4

alpha, beta

 

REAL*4

val(*), b(ldb,*), c(ldc,*), work(*)

CALL SCSRSM (transa, m, n, unitd, dv, alpha, descra, val, indx, pntrb, pntre, b, ldb, beta, c, ldc, work, lwork)

SUBROUTINE

DCSRSM

INTEGER*4

transa, m, n, unitd, ldb, ldc, lwork

INTEGER*4

descra(*), indx(*), pntrb(*), pntre(*)

REAL*8

alpha, beta

REAL*8

val(*), b(ldb,*), c(ldc,*), work(*)

CALL DCSRSM (transa, m, n, unitd, dv, alpha, descra, val, indx, pntrb, pntre, b, ldb, beta, c, ldc, work, lwork)

SUBROUTINE

CCSRSM

INTEGER*4

transa, m, n, unitd, ldb, ldc, lwork

INTEGER*4

descra(*), indx(*), pntrb(*), pntre(*)

COMPLEX*8

alpha, beta

COMPLEX*8

val(*), b(ldb,*), c(ldc,*), work(*)

CALL CCSRSM (transa, m, n, unitd, dv, alpha, descra, val, indx, pntrb, pntre, b, ldb, beta, c, ldc, work, lwork)

Chapter 4 Sparse BLAS Operations 493