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

Chapter 3 Basic Matrix Operations 327
Solve triangular systems STRSM/DTRSM/CTRSM/ZTRSM
Name STRSM/DTRSM/CTRSM/ZTRSM
Solve triangular systems
Purpose Given a scalar α, an upper- or lower-triangular matrix A and an m-by-n matrix
B, these subprograms compute either of the matrix solutions αA
1
B or αBA
1
.
The size of A, either m-by-m or n-by-n, depends on which matrix solution is
requested. Optionally, A
1
can be replaced by A
T
, the inverse of the transpose
of A, or by , the inverse of the conjugate transpose of A. The resulting
matrix solution overwrites the input B matrix. Specifically, these subprograms
compute matrix solutions of the forms
Refer to “F_STRSM/F_DTRSM/F_CTRSM/F_ZTRSM” on page 414 for a
description of the equivalent BLAS Standard subprograms.
Matrix
Storage
For these subprograms, you supply A in a two-dimensional array large enough
to hold a square matrix. The other triangle of the array is not referenced. If A
has an unstored unit diagonal (see input argument
diag), then the diagonal
elements of the array also is not referenced.
Usage VECLIB:
CHARACTER*1 side, uplo, transa, diag
INTEGER*4 m, n, lda, ldb
REAL*4 alpha, a(lda, *), b(ldb, *)
CALL STRSM(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
CHARACTER*1 side, uplo, transa, diag
INTEGER*4 m, n, lda, ldb
REAL*8 alpha, a(lda, *), b(ldb, *)
CALL DTRSM(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
CHARACTER*1 side, uplo, transa, diag
INTEGER*4 m, n, lda, ldb
COMPLEX*8 alpha, a(lda, *), b(ldb, *)
CALL CTRSM(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
CHARACTER*1 side, uplo, transa, diag
INTEGER*4 m, n, lda, ldb
COMPLEX*16 alpha, a(lda, *), b(ldb, *)
CALL ZTRSM(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
A
*
B αA
1
B, B αA
T
B, B α A
*
B,
B αBA
1
, B αBA
T
, B αBA
*
.