Contents


NAME

     ctrtrs - solve a triangular system of the form   A * X =  B,
     A**T * X = B, or A**H * X = B,

SYNOPSIS

     SUBROUTINE CTRTRS(UPLO, TRANSA, DIAG, N, NRHS, A, LDA, B, LDB, INFO)

     CHARACTER * 1 UPLO, TRANSA, DIAG
     COMPLEX A(LDA,*), B(LDB,*)
     INTEGER N, NRHS, LDA, LDB, INFO

     SUBROUTINE CTRTRS_64(UPLO, TRANSA, DIAG, N, NRHS, A, LDA, B, LDB,
           INFO)

     CHARACTER * 1 UPLO, TRANSA, DIAG
     COMPLEX A(LDA,*), B(LDB,*)
     INTEGER*8 N, NRHS, LDA, LDB, INFO

  F95 INTERFACE
     SUBROUTINE TRTRS(UPLO, [TRANSA], DIAG, [N], [NRHS], A, [LDA], B, [LDB],
            [INFO])

     CHARACTER(LEN=1) :: UPLO, TRANSA, DIAG
     COMPLEX, DIMENSION(:,:) :: A, B
     INTEGER :: N, NRHS, LDA, LDB, INFO

     SUBROUTINE TRTRS_64(UPLO, [TRANSA], DIAG, [N], [NRHS], A, [LDA], B,
            [LDB], [INFO])

     CHARACTER(LEN=1) :: UPLO, TRANSA, DIAG
     COMPLEX, DIMENSION(:,:) :: A, B
     INTEGER(8) :: N, NRHS, LDA, LDB, INFO

  C INTERFACE
     #include <sunperf.h>

     void ctrtrs(char uplo, char transa, char diag,  int  n,  int
               nrhs,  complex  *a,  int lda, complex *b, int ldb,
               int *info);

     void ctrtrs_64(char uplo, char transa, char  diag,  long  n,
               long  nrhs, complex *a, long lda, complex *b, long
               ldb, long *info);

PURPOSE

     ctrtrs solves a triangular system of the form
     A * X = B, A**T * X = B, or A**H * X = B

     where A is a triangular matrix of order N, and B  is  an  N-
     by-NRHS  matrix.   A  check is made to verify that A is non-
     singular.

ARGUMENTS

     UPLO (input)
               = 'U':  A is upper triangular;
               = 'L':  A is lower triangular.

     TRANSA (input)
               Specifies the form of the system of equations:
               = 'N':  A * X = B     (No transpose)
               = 'T':  A**T * X = B  (Transpose)
               = 'C':  A**H * X = B  (Conjugate transpose)

               TRANSA is defaulted to 'N' for F95 INTERFACE.

     DIAG (input)
               = 'N':  A is non-unit triangular;
               = 'U':  A is unit triangular.

     N (input) The order of the matrix A.  N >= 0.

     NRHS (input)
               The number of right hand sides, i.e.,  the  number
               of columns of the matrix B.  NRHS >= 0.

     A (input) The triangular matrix A.  If UPLO = 'U', the lead-
               ing  N-by-N  upper  triangular part of the array A
               contains the  upper  triangular  matrix,  and  the
               strictly  lower triangular part of A is not refer-
               enced.  If UPLO = 'L', the  leading  N-by-N  lower
               triangular  part of the array A contains the lower
               triangular matrix, and the strictly upper triangu-
               lar  part  of A is not referenced.  If DIAG = 'U',
               the diagonal elements of A are also not referenced
               and are assumed to be 1.

     LDA (input)
               The leading dimension of  the  array  A.   LDA  >=
               max(1,N).
     B (input/output)
               On entry, the right hand side matrix B.  On  exit,
               if INFO = 0, the solution matrix X.

     LDB (input)
               The leading dimension of  the  array  B.   LDB  >=
               max(1,N).

     INFO (output)
               = 0:  successful exit
               < 0: if INFO = -i, the i-th argument had an  ille-
               gal value
               > 0: if INFO = i, the i-th diagonal element  of  A
               is  zero,  indicating  that the matrix is singular
               and the solutions X have not been computed.