Contents


NAME

     cpttrs - solve a tridiagonal system of the form  A * X  =  B
     using the factorization A = U'*D*U or A = L*D*L' computed by
     CPTTRF

SYNOPSIS

     SUBROUTINE CPTTRS(UPLO, N, NRHS, DIAG, OFFD, B, LDB, INFO)

     CHARACTER * 1 UPLO
     COMPLEX OFFD(*), B(LDB,*)
     INTEGER N, NRHS, LDB, INFO
     REAL DIAG(*)

     SUBROUTINE CPTTRS_64(UPLO, N, NRHS, DIAG, OFFD, B, LDB, INFO)

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

  F95 INTERFACE
     SUBROUTINE PTTRS(UPLO, [N], [NRHS], DIAG, OFFD, B, [LDB], [INFO])

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

     SUBROUTINE PTTRS_64(UPLO, [N], [NRHS], DIAG, OFFD, B, [LDB], [INFO])

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

  C INTERFACE
     #include <sunperf.h>

     void cpttrs(char uplo, int n, int nrhs, float *diag, complex
               *offd, complex *b, int ldb, int *info);

     void cpttrs_64(char uplo, long n, long  nrhs,  float  *diag,
               complex *offd, complex *b, long ldb, long *info);

PURPOSE

     cpttrs solves a tridiagonal system of the form
        A * X = B using the factorization  A  =  U'*D*U  or  A  =
     L*D*L' computed by CPTTRF.  D is a diagonal matrix specified
     in the vector D, U (or L) is a unit bidiagonal matrix  whose
     superdiagonal  (subdiagonal)  is  specified in the vector E,
     and X and B are N by NRHS matrices.

ARGUMENTS

     UPLO (input)
               Specifies  the  form  of  the  factorization   and
               whether  the  vector  OFFD is the superdiagonal of
               the upper bidiagonal factor U or  the  subdiagonal
               of  the  lower  bidiagonal  factor L.  = 'U':  A =
               U'*DIAG*U, OFFD is the superdiagonal of U
               = 'L':  A = L*DIAG*L', OFFD is the subdiagonal  of
               L

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

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

     DIAG (input)
               The n diagonal elements  of  the  diagonal  matrix
               DIAG  from  the factorization A = U'*DIAG*U or A =
               L*DIAG*L'.

     OFFD (input/output)
               If UPLO = 'U', the (n-1) superdiagonal elements of
               the  unit  bidiagonal factor U from the factoriza-
               tion A = U'*DIAG*U.  If UPLO = 'L', the (n-1) sub-
               diagonal  elements of the unit bidiagonal factor L
               from the factorization A = L*DIAG*L'.

     B (input/output)
               On entry, the right hand side vectors  B  for  the
               system of linear equations.  On exit, the solution
               vectors, X.

     LDB (input)
               The leading dimension of  the  array  B.   LDB  >=
               max(1,N).
     INFO (output)
               = 0: successful exit
               < 0: if INFO = -k, the k-th argument had an  ille-
               gal value