STRMM/DTRMM/CTRMM/ZTRMM

Triangular matrix-matrix multiply

Name

STRMM/DTRMM/CTRMM/ZTRMM

 

 

Triangular matrix-matrix multiply

 

Purpose

Given a scalar α, an m-by-nmatrix 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-mor n-by-n, depends on which matrix product

 

is requested. Optionally, A can be replaced by AT, 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

 

B ← αAB, B ← αATB,

B ← αA*B,

 

B ← αBA, B ← αBAT,

B ← αBA*.

Matrix

For these subprograms, you supply A in a two-dimensional array large enough

Storage

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)

318HP MLIB User’s Guide