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

318 HP MLIB User’s Guide
STRMM/DTRMM/CTRMM/ZTRMM Triangular matrix-matrix multiply
Name STRMM/DTRMM/CTRMM/ZTRMM
Triangular matrix-matrix multiply
Purpose Given a scalar α, an m-by-n matrix B, and an upper- or lower-triangular matrix
A, these subprograms compute either of the matrix-matrix products αAB or
αBA. The size of A, either m-by-m or n-by-n, depends on which matrix product
is requested. Optionally, A can be replaced by A
T
, the transpose of A, or by A*,
the conjugate transpose of A. The resulting matrix product overwrites the input
B matrix. Specifically, these subprograms compute matrix products of the forms
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 are not referenced.
Usage VECLIB:
CHARACTER*1 side, uplo, transa, diag
INTEGER*4 m, n, lda, ldb
REAL*4 alpha, a(lda, *), b(ldb, *)
CALL STRMM(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 DTRMM(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 CTRMM(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 ZTRMM(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
B ←αAB,
B ←αA
T
B,
B ←αA*B,
B ←αBA,
B ←αBA
T
,
B ←αBA*.