Contents


NAME

     zgtsv - solve the equation   A*X = B,

SYNOPSIS

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

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

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

     DOUBLE 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(8), DIMENSION(:) :: LOW, DIAG, UP
     COMPLEX(8), DIMENSION(:,:) :: B
     INTEGER :: N, NRHS, LDB, INFO

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

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

  C INTERFACE
     #include <sunperf.h>

     void zgtsv(int n, int nrhs, doublecomplex  *low,  doublecom-
               plex  *diag,  doublecomplex *up, doublecomplex *b,
               int ldb, int *info);

     void zgtsv_64(long n, long nrhs, doublecomplex  *low,  doub-
               lecomplex  *diag, doublecomplex *up, doublecomplex
               *b, long ldb, long *info);

PURPOSE

     zgtsv 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.