Contents
zgttrf - compute an LU factorization of a complex tridiago-
nal matrix A using elimination with partial pivoting and row
interchanges
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);
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.
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.