trsm(3F)

STRSM, DTRSM, CTRSM, ZTRSM - Solves a real or complex triangular system of equations with multiple right-hand sides

Showing IRIX 6.5.30 (default release). Last changed in IRIX 6.5.19.

NAME
     STRSM, DTRSM, CTRSM, ZTRSM - Solves a real or complex triangular
     system of equations with multiple right-hand sides

SYNOPSIS
     Real

        CALL STRSM (side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)

     Double precision

        CALL DTRSM (side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)

     Complex

        CALL CTRSM (side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)

     Double complex

        CALL ZTRSM (side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)

DESCRIPTION
     STRSM and DTRSM solve a real triangular syste m of equations with
     multiple right-hand sides.

     CTRSM and ZTRSM solve a complex triangular system of equations with
     multiple right-hand sides.

     These routines solve one of the following matrix equations, using the
     operation associated with each:

          op(A) X = alpha B


          B <- alpha op(A-1)B

          or

          X op(A) = alpha B


          B <- alpha B op(A-1)

     where

     * alpha is a scalar

     * X and B are m-by-n matrices

     * A is either a unit or nonunit upper or lower triangular matrix

     * A-1 is the inverse of A

     * op(A) is one of the following:

            op(A) = A

            op(A) = AT


            op(A) = AH (CTRSM  and ZTRSM only)

     where AT is the transpose of A, and AH is the conjugate transpose of
     A.

     These routines have the following arguments:

     side      Character*1.  (input)
               Specifies whether op(A) appears on the left or right of X,
               as follows:

               side = 'L' or 'l':  op(A)*X = alpha*B

               side = 'R' or 'r':  X*op(A) = alpha*B

     uplo      Character*1.  (input)
               Specifies whether matrix A is an upper or lower triangular
               matrix, as follows:

               uplo = 'U' or 'u':  A is an upper triangular matrix.
               uplo = 'L' or 'l':  A is a lower triangular matrix.

     transa    Character*1.  (input)
               Specifies the form of op(A) to be used in the matrix
               multiplication, as follows:

               transa = 'N' or 'n':  op(A) = A


               transa = 'T' or 't':  op(A) = AT


               transa = 'C' or 'c':  op(A) = AT (STRSM, DTRSM),

               or op(A) = AH (CTRSM, ZTRSM)

     diag      Character*1.  (input)
               Specifies whether A is unit triangular, as follows:

               diag = 'U' or 'u': A is assumed to be unit triangular.
               diag = 'N' or 'n': A is not assumed to be unit triangular.

     m         Integer.  (input)
               Specifies the number of rows in B.  m must be >= 0.

     n         Integer.  (input)
               Specifies the number of columns in B.  n must be >= 0.

     alpha     Scalar factor.  (input)
               STRSM: Real.
               DTRSM: Double precision.
               CTRSM: Complex.
               ZTRSM: Double complex.
               When alpha is 0, a is not referenced, and b need not be set
               before entry.

     a         Array of dimension (lda,k).  (input)
               STRSM: Real array.
               DTRSM: Double precision array.
               CTRSM: Complex array.
               ZTRSM: Double complex array.
               When side = 'L' or 'l', k is m; when side = 'R' or 'r', it
               is n.
               Contains the matrix A.

               Before entry with uplo = 'U' or 'u', the leading k-by-k
               upper triangular part of array a must contain the upper
               triangular matrix.  The strictly lower triangular part of a
               is not referenced.

               Before entry with uplo = 'L' or 'l', the leading k-by-k
               lower triangular part of array a must contain the lower
               triangular matrix.  The strictly upper triangular part of a
               is not referenced.

               When diag = 'U' or 'u', the diagonal elements of a are not
               referenced, but they are assumed to be unity.

     lda       Integer.  (input)
               Specifies the first dimension of a as declared in the
               calling program.

               When side = 'L' or 'l', lda >= MAX(1,m).

               When side = 'R' or 'r', lda >= MAX(1,n).

     b         Array of dimension (ldb,n).  (input)
               STRSM: Real array.
               DTRSM: Double precision array.
               CTRSM: Complex array.
               ZTRSM: Double complex array.
               Contains the matrix B.

               Before entry, the leading m-by-n part of array b must
               contain the right-hand side matrix B.  On exit, the solution
               matrix X overwrites array b.

     ldb       Integer.  (input)
               Specifies the first dimension of b as declared in the
               calling program.  ldb >= MAX(1,m).

NOTES
     These routines are Level 3 Basic Linear Algebra Subprograms (Level 3
     BLAS).