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-nmatrix

 

B, these subprograms compute either of the matrix solutions αA−1B or αBA−1.

 

The size of A, either m-by-mor n-by-n, depends on which matrix solution is

 

requested. Optionally, A−1 can be replaced by AT, the inverse of the transpose

 

of A, or by A* , 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

 

 

B ← α A–1B,

B ← α ATB,

B ← α A–*B,

 

B ← αB A–1,

B ← αB AT ,

B ← αB A–*.

 

Refer to “F_STRSM/F_DTRSM/F_CTRSM/F_ZTRSM” on page 414 for a

 

description of the equivalent BLAS Standard subprograms.

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 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)

Chapter 3 Basic Matrix Operations 327