# ?pbtf2

Computes the Cholesky factorization of a symmetric/ Hermitian positive-definite band matrix (unblocked algorithm).

## Syntax

call spbtf2( uplo, n, kd, ab, ldab, info )

call dpbtf2( uplo, n, kd, ab, ldab, info )

call cpbtf2( uplo, n, kd, ab, ldab, info )

call zpbtf2( uplo, n, kd, ab, ldab, info )

## Description

The routine computes the Cholesky factorization of a real symmetric or complex Hermitian positive definite band matrix A.

The factorization has the form

`A = UT*U` for real flavors, `A = UH*U` for complex flavors if `uplo = 'U'`, or

`A = L*LT` for real flavors, `A = L*LH` for complex flavors if `uplo = 'L'`,

where U is an upper triangular matrix, and L is lower triangular. This is the unblocked version of the algorithm, calling BLAS Level 2 Routines.

## Input Parameters

uplo

  CHARACTER*1.

  Specifies whether the upper or lower triangular part of the symmetric/Hermitian matrix A is stored:

  = 'U': upper triangular

  = 'L': lower triangular

n

  INTEGER. The order of the matrix A. `n ≥ 0`.

kd

  INTEGER. The number of super-diagonals of the matrix A if `uplo = 'U'` , or the number of sub-diagonals if `uplo = 'L'`.

  `kd ≥ 0`.

ab

  REAL for spbtf2

  DOUBLE PRECISION for dpbtf2

  COMPLEX for cpbtf2

  COMPLEX*16 for zpbtf2.

  Array, DIMENSION (ldab, n).

  On entry, the upper or lower triangle of the symmetric/ Hermitian band matrix A, stored in the first kd+1 rows of the array. The j-th column of A is stored in the j-th column of the array ab as follows:

  if `uplo = 'U'`, `ab(kd+1+i -j,j) = A(i, j` for `max(1, j-kd) ≤ i ≤ j`;

  if `uplo = 'L'`, `ab(1+i -j,j) = A(i, j` for `j ≤ i` ≤ min(n, j+kd).

ldab

  INTEGER. The leading dimension of the array ab. `ldab ≥ kd+1`.

## Output Parameters

ab

  On exit, If `info = 0`, the triangular factor U or L from the Cholesky factorization `A=UT*U` (`A=UH*U`), or `A= L*LT` (`A = L*LH`) of the band matrix A, in the same storage format as A.

info

  INTEGER.

  = 0: successful exit

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

  > 0: if `info = k`, the leading minor of order k is not positive definite, and the factorization could not be completed.

Parent topic: Auxiliary Routines