Contents


NAME

     cgtsv - solve the equation   A*X = B,

SYNOPSIS

     SUBROUTINE CGTSV(N, NRHS, LOW, DIAG, UP, B, LDB, INFO)

     COMPLEX LOW(*), DIAG(*), UP(*), B(LDB,*)
     INTEGER N, NRHS, LDB, INFO

     SUBROUTINE CGTSV_64(N, NRHS, LOW, DIAG, UP, B, LDB, INFO)

     COMPLEX LOW(*), DIAG(*), UP(*), B(LDB,*)
     INTEGER*8 N, NRHS, LDB, INFO

  F95 INTERFACE
     SUBROUTINE GTSV([N], [NRHS], LOW, DIAG, UP, B, [LDB], [INFO])

     COMPLEX, DIMENSION(:) :: LOW, DIAG, UP
     COMPLEX, DIMENSION(:,:) :: B
     INTEGER :: N, NRHS, LDB, INFO

     SUBROUTINE GTSV_64([N], [NRHS], LOW, DIAG, UP, B, [LDB], [INFO])

     COMPLEX, DIMENSION(:) :: LOW, DIAG, UP
     COMPLEX, DIMENSION(:,:) :: B
     INTEGER(8) :: N, NRHS, LDB, INFO

  C INTERFACE
     #include <sunperf.h>

     void cgtsv(int n, int nrhs,  complex  *low,  complex  *diag,
               complex *up, complex *b, int ldb, int *info);

     void cgtsv_64(long  n,  long  nrhs,  complex  *low,  complex
               *diag,  complex  *up,  complex  *b, long ldb, long
               *info);

PURPOSE

     cgtsv solves the equation

     where A is an N-by-N tridiagonal matrix, by Gaussian  elimi-
     nation with partial pivoting.

     Note that the equation  A'*X = B  may be  solved  by  inter-
     changing the order of the arguments DU and DL.

ARGUMENTS

     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.

     LOW (input/output)
               On entry, LOW must contain the  (n-1)  subdiagonal
               elements of A.  On exit, LOW is overwritten by the
               (n-2) elements of the second superdiagonal of  the
               upper  triangular  matrix U from the LU factoriza-
               tion of A, in LOW(1), ..., LOW(n-2).

     DIAG (input/output)
               On entry, DIAG must contain the diagonal  elements
               of A.  On exit, DIAG is overwritten by the n diag-
               onal elements of U.

     UP (input/output)
               On entry, UP must contain the (n-1)  superdiagonal
               elements  of A.  On exit, UP is overwritten by the
               (n-1) elements of the first superdiagonal of U.

     B (input/output)
               On entry, the N-by-NRHS right hand side matrix  B.
               On  exit,  if  INFO  =  0,  the N-by-NRHS 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, U(i,i) is exactly zero, and the
               solution has not been computed.  The factorization
               has not been completed unless i = N.