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
*–
.←