gttrf#
Functions
-
void sgttrf(const INT n, f32 *restrict DL, f32 *restrict D, f32 *restrict DU, f32 *restrict DU2, INT *restrict ipiv, INT *info)#
SGTTRF computes an LU factorization of a real tridiagonal matrix A using elimination with partial pivoting and row interchanges.
The factorization has the form
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.A = L * U
Parameters
innThe order of the matrix A.
n>=0.inoutDLArray of dimension (
n-1). On entry, the (n-1) sub-diagonal elements of A. On exit, the (n-1) multipliers that define the matrix L from the LU factorization of A.inoutDArray of dimension (
n). On entry, the diagonal elements of A. On exit, the n diagonal elements of the upper triangular matrix U from the LU factorization of A.inoutDUArray of dimension (
n-1). On entry, the (n-1) super-diagonal elements of A. On exit, the (n-1) elements of the first super-diagonal of U.outDU2Array of dimension (
n-2). On exit, the (n-2) elements of the second super-diagonal of U.outipivArray of dimension (
n). The pivot indices; for0<=i<n, row i of the matrix was interchanged with rowipiv[i].ipiv[i]will always be either i or i+1;ipiv[i]=iindicates a row interchange was not required.outinfoinfo=0: successful exitinfo<0: ifinfo=-k, the k-th argument had an illegal valueinfo>0: ifinfo=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.
void sgttrf(
const INT n,
f32* restrict DL,
f32* restrict D,
f32* restrict DU,
f32* restrict DU2,
INT* restrict ipiv,
INT* info
);
Functions
-
void dgttrf(const INT n, f64 *restrict DL, f64 *restrict D, f64 *restrict DU, f64 *restrict DU2, INT *restrict ipiv, INT *info)#
DGTTRF computes an LU factorization of a real tridiagonal matrix A using elimination with partial pivoting and row interchanges.
The factorization has the form
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.A = L * U
Parameters
innThe order of the matrix A.
n>=0.inoutDLArray of dimension (
n-1). On entry, the (n-1) sub-diagonal elements of A. On exit, the (n-1) multipliers that define the matrix L from the LU factorization of A.inoutDArray of dimension (
n). On entry, the diagonal elements of A. On exit, the n diagonal elements of the upper triangular matrix U from the LU factorization of A.inoutDUArray of dimension (
n-1). On entry, the (n-1) super-diagonal elements of A. On exit, the (n-1) elements of the first super-diagonal of U.outDU2Array of dimension (
n-2). On exit, the (n-2) elements of the second super-diagonal of U.outipivArray of dimension (
n). The pivot indices; for0<=i<n, row i of the matrix was interchanged with rowipiv[i].ipiv[i]will always be either i or i+1;ipiv[i]=iindicates a row interchange was not required.outinfoinfo=0: successful exitinfo<0: ifinfo=-k, the k-th argument had an illegal valueinfo>0: ifinfo=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.
void dgttrf(
const INT n,
f64* restrict DL,
f64* restrict D,
f64* restrict DU,
f64* restrict DU2,
INT* restrict ipiv,
INT* info
);
Functions
-
void cgttrf(const INT n, c64 *restrict DL, c64 *restrict D, c64 *restrict DU, c64 *restrict DU2, INT *restrict ipiv, INT *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
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.A = L * U
Parameters
innThe order of the matrix A.
n>=0.inoutDLArray of dimension (
n-1). On entry, the (n-1) sub-diagonal elements of A. On exit, the (n-1) multipliers that define the matrix L from the LU factorization of A.inoutDArray of dimension (
n). On entry, the diagonal elements of A. On exit, the n diagonal elements of the upper triangular matrix U from the LU factorization of A.inoutDUArray of dimension (
n-1). On entry, the (n-1) super-diagonal elements of A. On exit, the (n-1) elements of the first super-diagonal of U.outDU2Array of dimension (
n-2). On exit, the (n-2) elements of the second super-diagonal of U.outipivArray of dimension (
n). The pivot indices; for0<=i<n, row i of the matrix was interchanged with rowipiv[i].ipiv[i]will always be either i or i+1;ipiv[i]=iindicates a row interchange was not required.outinfoinfo=0: successful exitinfo<0: ifinfo=-k, the k-th argument had an illegal valueinfo>0: ifinfo=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.
void cgttrf(
const INT n,
c64* restrict DL,
c64* restrict D,
c64* restrict DU,
c64* restrict DU2,
INT* restrict ipiv,
INT* info
);
Functions
-
void zgttrf(const INT n, c128 *restrict DL, c128 *restrict D, c128 *restrict DU, c128 *restrict DU2, INT *restrict ipiv, INT *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
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.A = L * U
Parameters
innThe order of the matrix A.
n>=0.inoutDLArray of dimension (
n-1). On entry, the (n-1) sub-diagonal elements of A. On exit, the (n-1) multipliers that define the matrix L from the LU factorization of A.inoutDArray of dimension (
n). On entry, the diagonal elements of A. On exit, the n diagonal elements of the upper triangular matrix U from the LU factorization of A.inoutDUArray of dimension (
n-1). On entry, the (n-1) super-diagonal elements of A. On exit, the (n-1) elements of the first super-diagonal of U.outDU2Array of dimension (
n-2). On exit, the (n-2) elements of the second super-diagonal of U.outipivArray of dimension (
n). The pivot indices; for0<=i<n, row i of the matrix was interchanged with rowipiv[i].ipiv[i]will always be either i or i+1;ipiv[i]=iindicates a row interchange was not required.outinfoinfo=0: successful exitinfo<0: ifinfo=-k, the k-th argument had an illegal valueinfo>0: ifinfo=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.
void zgttrf(
const INT n,
c128* restrict DL,
c128* restrict D,
c128* restrict DU,
c128* restrict DU2,
INT* restrict ipiv,
INT* info
);