# ?gbtf2

Computes the LU factorization of a general band matrix using the unblocked version of the algorithm.

## Syntax

call sgbtf2( m, n, kl, ku, ab, ldab, ipiv, info )

call dgbtf2( m, n, kl, ku, ab, ldab, ipiv, info )

call cgbtf2( m, n, kl, ku, ab, ldab, ipiv, info )

call zgbtf2( m, n, kl, ku, ab, ldab, ipiv, info )

## Description

The routine forms the LU factorization of a general real/complex m-by-n band matrix A with kl sub-diagonals and ku super-diagonals. The routine uses partial pivoting with row interchanges and implements the unblocked version of the algorithm, calling Level 2 BLAS. See also ?gbtrf.

## Input Parameters

m

  INTEGER. The number of rows of the matrix A (`m ≥ 0`).

n

  INTEGER. The number of columns in A (`n ≥ 0`).

kl

  INTEGER. The number of sub-diagonals within the band of A (`kl ≥ 0`).

ku

  INTEGER. The number of super-diagonals within the band of A (`ku ≥ 0`).

ab

  REAL for sgbtf2

  DOUBLE PRECISION for dgbtf2

  COMPLEX for cgbtf2

  COMPLEX*16 for zgbtf2.

  Array, DIMENSION (ldab,*).

  The array ab contains the matrix A in band storage (see Matrix Arguments).

  The second dimension of ab must be at least `max(1, n)`.

ldab

  INTEGER. The first dimension of the array ab.

  `(ldab ≥ 2kl + ku +1)`

## Output Parameters

ab

  Overwritten by details of the factorization. The diagonal and kl + ku super-diagonals of U are stored in the first 1 + kl + ku rows of ab. The multipliers used during the factorization are stored in the next kl rows.

ipiv

  INTEGER.

  Array, DIMENSION at least max(1,min(m,n)).

  The pivot indices: row i was interchanged with row ipiv(i).

info

  INTEGER. If `info =0`, the execution is successful.

  If `info = -i`, the i-th parameter had an illegal value.

  If `info = i`, ui i is 0. The factorization has been completed, but 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