cgttrf - compute an LU factorization of a complex tridiagonal matrix A using elimination with partial pivoting and row interchanges
SUBROUTINE CGTTRF( N, LOW, DIAG, UP1, UP2, IPIVOT, INFO) COMPLEX LOW(*), DIAG(*), UP1(*), UP2(*) INTEGER N, INFO INTEGER IPIVOT(*)
SUBROUTINE CGTTRF_64( N, LOW, DIAG, UP1, UP2, IPIVOT, INFO) COMPLEX LOW(*), DIAG(*), UP1(*), UP2(*) INTEGER*8 N, INFO INTEGER*8 IPIVOT(*)
SUBROUTINE GTTRF( [N], LOW, DIAG, UP1, UP2, IPIVOT, [INFO]) COMPLEX, DIMENSION(:) :: LOW, DIAG, UP1, UP2 INTEGER :: N, INFO INTEGER, DIMENSION(:) :: IPIVOT
SUBROUTINE GTTRF_64( [N], LOW, DIAG, UP1, UP2, IPIVOT, [INFO]) COMPLEX, DIMENSION(:) :: LOW, DIAG, UP1, UP2 INTEGER(8) :: N, INFO INTEGER(8), DIMENSION(:) :: IPIVOT
#include <sunperf.h>
void cgttrf(int n, complex *low, complex *diag, complex *up1, complex *up2, int *ipivot, int *info);
void cgttrf_64(long n, complex *low, complex *diag, complex *up1, complex *up2, long *ipivot, long *info);
cgttrf 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 bidiagonal matrices and U is upper triangular with nonzeros in only the main diagonal and first two superdiagonals.
On exit, LOW is overwritten by the (n-1) multipliers that define the matrix L from the LU factorization of A.
On exit, DIAG is overwritten by the n diagonal elements of the upper triangular matrix U from the LU factorization of A.
On exit, UP1 is overwritten by the (n-1) elements of the first super-diagonal of U.
IPIVOT(i)
will always be either
i or i+1; IPIVOT(i)
= i indicates a row interchange was not
required.
= 0: successful exit
< 0: if INFO = -k, the k-th argument had an illegal 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 equations.