F08 Chapter Contents
F08 Chapter Introduction
NAG Library Manual

# NAG Library Routine DocumentF08UFF (DPBSTF)

Note:  before using this routine, please read the Users' Note for your implementation to check the interpretation of bold italicised terms and other implementation-dependent details.

## 1  Purpose

F08UFF (DPBSTF) computes a split Cholesky factorization of a real symmetric positive definite band matrix.

## 2  Specification

 SUBROUTINE F08UFF ( UPLO, N, KB, BB, LDBB, INFO)
 INTEGER N, KB, LDBB, INFO REAL (KIND=nag_wp) BB(LDBB,*) CHARACTER(1) UPLO
The routine may be called by its LAPACK name dpbstf.

## 3  Description

F08UFF (DPBSTF) computes a split Cholesky factorization of a real symmetric positive definite band matrix $B$. It is designed to be used in conjunction with F08UEF (DSBGST).
The factorization has the form $B={S}^{\mathrm{T}}S$, where $S$ is a band matrix of the same bandwidth as $B$ and the following structure: $S$ is upper triangular in the first $\left(n+k\right)/2$ rows, and transposed — hence, lower triangular — in the remaining rows. For example, if $n=9$ and $k=2$, then
 $S = s11 s12 s13 s22 s23 s24 s33 s34 s35 s44 s45 s55 s64 s65 s66 s75 s76 s77 s86 s87 s88 s97 s98 s99 .$
None.

## 5  Parameters

1:     UPLO – CHARACTER(1)Input
On entry: indicates whether the upper or lower triangular part of $B$ is stored.
${\mathbf{UPLO}}=\text{'U'}$
The upper triangular part of $B$ is stored.
${\mathbf{UPLO}}=\text{'L'}$
The lower triangular part of $B$ is stored.
Constraint: ${\mathbf{UPLO}}=\text{'U'}$ or $\text{'L'}$.
2:     N – INTEGERInput
On entry: $n$, the order of the matrix $B$.
Constraint: ${\mathbf{N}}\ge 0$.
3:     KB – INTEGERInput
On entry: if ${\mathbf{UPLO}}=\text{'U'}$, the number of superdiagonals, ${k}_{b}$, of the matrix $B$.
If ${\mathbf{UPLO}}=\text{'L'}$, the number of subdiagonals, ${k}_{b}$, of the matrix $B$.
Constraint: ${\mathbf{KB}}\ge 0$.
4:     BB(LDBB,$*$) – REAL (KIND=nag_wp) arrayInput/Output
Note: the second dimension of the array BB must be at least $\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(1,{\mathbf{N}}\right)$.
On entry: the $n$ by $n$ symmetric positive definite band matrix $B$.
The matrix is stored in rows $1$ to ${k}_{b}+1$, more precisely,
• if ${\mathbf{UPLO}}=\text{'U'}$, the elements of the upper triangle of $B$ within the band must be stored with element ${B}_{ij}$ in ${\mathbf{BB}}\left({k}_{b}+1+i-j,j\right)\text{​ for ​}\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(1,j-{k}_{b}\right)\le i\le j$;
• if ${\mathbf{UPLO}}=\text{'L'}$, the elements of the lower triangle of $B$ within the band must be stored with element ${B}_{ij}$ in ${\mathbf{BB}}\left(1+i-j,j\right)\text{​ for ​}j\le i\le \mathrm{min}\phantom{\rule{0.125em}{0ex}}\left(n,j+{k}_{b}\right)\text{.}$
On exit: $B$ is overwritten by the elements of its split Cholesky factor $S$.
5:     LDBB – INTEGERInput
On entry: the first dimension of the array BB as declared in the (sub)program from which F08UFF (DPBSTF) is called.
Constraint: ${\mathbf{LDBB}}\ge {\mathbf{KB}}+1$.
6:     INFO – INTEGEROutput
On exit: ${\mathbf{INFO}}=0$ unless the routine detects an error (see Section 6).

## 6  Error Indicators and Warnings

${\mathbf{INFO}}<0$
If ${\mathbf{INFO}}=-i$, argument $i$ had an illegal value. An explanatory message is output, and execution of the program is terminated.
${\mathbf{INFO}}>0$
If ${\mathbf{INFO}}=i$, the factorization could not be completed, because the updated element $b\left(i,i\right)$ would be the square root of a negative number. Hence $B$ is not positive definite. This may indicate an error in forming the matrix $B$.

## 7  Accuracy

The computed factor $S$ is the exact factor of a perturbed matrix $\left(B+E\right)$, where
 $E≤ck+1εSTS,$
$c\left(k+1\right)$ is a modest linear function of $k+1$, and $\epsilon$ is the machine precision. It follows that $\left|{e}_{ij}\right|\le c\left(k+1\right)\epsilon \sqrt{\left({b}_{ii}{b}_{jj}\right)}$.

The total number of floating point operations is approximately $n{\left(k+1\right)}^{2}$, assuming $n\gg k$.
A call to F08UFF (DPBSTF) may be followed by a call to F08UEF (DSBGST) to solve the generalized eigenproblem $Az=\lambda Bz$, where $A$ and $B$ are banded and $B$ is positive definite.