# ?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

This 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 DIMENSION`(n - 1)` contains the sub-diagonal elements of A.

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

  The array du of DIMENSION`(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.

Parent topic: Auxiliary Routines