Contents


NAME

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

SYNOPSIS

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

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

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

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

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

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

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

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

  C INTERFACE
     #include <sunperf.h>

     void stptrs(char uplo, char transa, char diag,  int  n,  int
               nrhs, float *a, float *b, int ldb, int *info);

     void stptrs_64(char uplo, char transa, char  diag,  long  n,
               long  nrhs,  float  *a,  float  *b, long ldb, long
               *info);

PURPOSE

     stptrs solves a triangular system of the form

     A * X = B or A**T * X = B
     where A is a triangular matrix of order N stored  in  packed
     format,  and  B  is an N-by-NRHS matrix.  A check is made to
     verify that A is nonsingular.

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 = Tran-
               spose)

     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) REAL array, dimension (N*(N+1)/2)
               The upper or lower  triangular  matrix  A,  packed
               columnwise  in a linear array.  The j-th column of
               A is stored in the array A as follows:  if UPLO  =
               'U',  A(i  +  (j-1)*j/2)  = A(i,j) for 1<=i<=j; if
               UPLO = 'L', A(i + (j-1)*(2*n-j)/2)  =  A(i,j)  for
               j<=i<=n.

     B (input/output) REAL array,
               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.