If
${\mathbf{uplo}}=\text{'U'}$, the computed factors
$U$ and
$D$ are the exact factors of a perturbed matrix
$A+E$, where
$c\left(n\right)$ is a modest linear function of
$n$, and
$\epsilon $ is the
machine precision.
Please consult the
X06 Chapter Introduction for information on how to control and interrogate the OpenMP environment used within this routine. Please also consult the
Users' Note for your implementation for any additional implementation-specific information.
The elements of
$D$ overwrite the corresponding elements of
$A$; if
$D$ has
$2$ by
$2$ blocks, only the upper or lower triangle is stored, as specified by
uplo.
The unit diagonal elements of
$U$ or
$L$ and the
$2$ by
$2$ unit diagonal blocks are not stored. The remaining elements of
$U$ or
$L$ are stored in the corresponding columns of the array
a, but additional row interchanges must be applied to recover
$U$ or
$L$ explicitly (this is seldom necessary). If
${\mathbf{ipiv}}\left(\mathit{i}\right)=\mathit{i}$, for
$\mathit{i}=1,2,\dots ,n$, then
$U$ or
$L$ is stored explicitly (except for its unit diagonal elements which are equal to
$1$).
A call to
f07nrf may be followed by calls to the routines:
- f07nsf to solve $AX=B$;
- f07nuf to estimate the condition number of $A$;
- f07nwf to compute the inverse of $A$.
The real analogue of this routine is
f07mdf.
This example computes the Bunch–Kaufman factorization of the matrix
$A$, where