?dttrf

Computes an LU factorization of a general tridiagonal matrix with no pivoting (local blocked algorithm).

Syntax

call sdttrf(n, dl, d, du, info)

call ddttrf(n, dl, d, du, info)

call cdttrf(n, dl, d, du, info)

call zdttrf(n, dl, d, du, info)

Description

The ?dttrf routine computes an LU factorization of a real or complex tridiagonal matrix A using elimination without partial pivoting.

The factorization has the form A = L*U, where L is a product of unit lower bidiagonal matrices and U is upper triangular with nonzeros only in the main diagonal and first superdiagonal.

Input Parameters

n

INTEGER. The order of the matrix A(n 0).

dl, d, du

REAL for sdttrf

DOUBLE PRECISION for ddttrf

COMPLEX for cdttrf

COMPLEX*16 for zdttrf.

Arrays containing elements of A.

The array dl of size (n-1) contains the sub-diagonal elements of A.

The array d of size n contains the diagonal elements of A.

The array du of size (n-1) contains the super-diagonal elements of A.

Output Parameters

dl

Overwritten by the (n-1) multipliers that define the matrix L from the LU factorization of A.

d

Overwritten by the n diagonal elements of the upper triangular matrix U from the LU factorization of A.

du

Overwritten by the (n-1) elements of the first super-diagonal of U.

info

INTEGER.

= 0: successful exit

< 0: if info = - i, the i-th argument had an illegal value,

> 0: if info = i, U(i,i) is exactly 0. The factorization has been completed, but the factor U is exactly singular. Division by 0 will occur if you use the factor U for solving a system of linear equations.

See Also

For more complete information about compiler optimizations, see our Optimization Notice.