Contents


NAME

     zgttrf - compute an LU factorization of a complex  tridiago-
     nal matrix A using elimination with partial pivoting and row
     interchanges

SYNOPSIS

     SUBROUTINE ZGTTRF(N, LOW, DIAG, UP1, UP2, IPIVOT, INFO)

     DOUBLE COMPLEX LOW(*), DIAG(*), UP1(*), UP2(*)
     INTEGER N, INFO
     INTEGER IPIVOT(*)

     SUBROUTINE ZGTTRF_64(N, LOW, DIAG, UP1, UP2, IPIVOT, INFO)

     DOUBLE COMPLEX LOW(*), DIAG(*), UP1(*), UP2(*)
     INTEGER*8 N, INFO
     INTEGER*8 IPIVOT(*)

  F95 INTERFACE
     SUBROUTINE GTTRF([N], LOW, DIAG, UP1, UP2, IPIVOT, [INFO])

     COMPLEX(8), DIMENSION(:) :: LOW, DIAG, UP1, UP2
     INTEGER :: N, INFO
     INTEGER, DIMENSION(:) :: IPIVOT

     SUBROUTINE GTTRF_64([N], LOW, DIAG, UP1, UP2, IPIVOT, [INFO])

     COMPLEX(8), DIMENSION(:) :: LOW, DIAG, UP1, UP2
     INTEGER(8) :: N, INFO
     INTEGER(8), DIMENSION(:) :: IPIVOT

  C INTERFACE
     #include <sunperf.h>

     void zgttrf(int n, doublecomplex *low, doublecomplex  *diag,
               doublecomplex   *up1,   doublecomplex   *up2,  int
               *ipivot, int *info);

     void zgttrf_64(long  n,  doublecomplex  *low,  doublecomplex
               *diag,  doublecomplex  *up1,  doublecomplex  *up2,
               long *ipivot, long *info);

PURPOSE

     zgttrf computes an LU factorization of a complex tridiagonal
     matrix  A  using  elimination  with partial pivoting and row
     interchanges.
     The factorization has the form
        A = L * U
     where L is a product of permutation and unit lower  bidiago-
     nal matrices and U is upper triangular with nonzeros in only
     the main diagonal and first two superdiagonals.

ARGUMENTS

     N (input) The order of the matrix A.

     LOW (input/output)
               On entry, LOW must contain the (n-1)  sub-diagonal
               elements of A.

               On exit, LOW is overwritten by  the  (n-1)  multi-
               pliers  that  define the matrix L from the LU fac-
               torization of A.

     DIAG (input/output)
               On entry, DIAG must contain the diagonal  elements
               of A.

               On exit, DIAG is overwritten  by  the  n  diagonal
               elements of the upper triangular matrix U from the
               LU factorization of A.

     UP1 (input/output)
               On  entry,  UP1  must  contain  the  (n-1)  super-
               diagonal elements of A.

               On exit, UP1 is overwritten by the (n-1)  elements
               of the first super-diagonal of U.

     UP2 (output)
               On exit, UP2 is overwritten by the (n-2)  elements
               of the second super-diagonal of U.

     IPIVOT (output)
               The pivot indices; for 1 <= i <= n, row i  of  the
               matrix   was   interchanged  with  row  IPIVOT(i).
               IPIVOT(i)  will  always  be  either  i   or   i+1;
               IPIVOT(i)  = i indicates a row interchange was not
               required.

     INFO (output)
               = 0:  successful exit
               < 0:  if INFO = -k, the k-th argument had an ille-
               gal value
               > 0:  if INFO = k, U(k,k)  is  exactly  zero.  The
               factorization has been completed, but the factor U
               is exactly singular, and  division  by  zero  will
               occur  if  it  is  used to solve a system of equa-
               tions.