### HSL_MA54 Deﬁnite symmetric full matrix: partial or complete factorization and
solution

For a matrix that is full, symmetric and positive deﬁnite, this module performs
partial factorizations and solutions of corresponding sets of equations, paying special
attention to the eﬃcient use of cache memory. It uses a modiﬁcation of the code of
Andersen, Gunnels, Gustavson, Reid, and Wasniewski (ACM Trans. on Math.
Software, 31, 2005, 201-227). It is designed as a kernel for use in a frontal or
multifrontal solver, but may also be used for the direct solution of a full set of
equations.

The modiﬁcation involves limiting the eliminations to the leading
$p$
columns. The factorization takes the form

$$A=\left(\begin{array}{cc}\hfill {A}_{11}\hfill & \hfill {A}_{21}^{T}\hfill \\ \hfill {A}_{21}\hfill & \hfill {A}_{22}\hfill \end{array}\right)=\left(\begin{array}{c}\hfill {L}_{11}\hfill \\ \hfill {L}_{21}\hfill & \hfill I\hfill \end{array}\right)\left(\begin{array}{c}\hfill I\hfill \\ \hfill \hfill & \hfill {S}_{22}\hfill \end{array}\right)\left(\begin{array}{cc}\hfill {L}_{11}^{T}\hfill & \hfill {L}_{21}^{T}\hfill \\ \hfill \hfill & \hfill I\hfill \end{array}\right)$$
where ${L}_{11}$ is lower
triangular and both ${A}_{11}$
and ${L}_{11}$ have
order $p$.

The input format for $A$
is that its lower triangular part is held in lower packed format
(that is, packed by columns). This format is also used for
${S}_{22}$ on return.
The matrices ${L}_{11}$
and ${L}_{21}$
are held as block matrices with blocks of size at most
$nb\times nb$. Internally, we use this
blocked format also for ${A}_{22}$.

The module has facilities for rearranging a lower triangular matrix in
lower packed format (that is, packed by columns) to this blocked format and
vice-versa.

Subroutines are provided for partial forward and back substitution, that is,
solving equations of the form

$$\left(\begin{array}{c}\hfill {L}_{11}\hfill \\ \hfill {L}_{21}\hfill & \hfill I\hfill \end{array}\right)X=B\mathrm{\text{and}}\left(\begin{array}{cc}\hfill {L}_{11}^{T}\hfill & \hfill {L}_{21}^{T}\hfill \\ \hfill \hfill & \hfill I\hfill \end{array}\right)X=B$$
and the corresponding equations for a single right-hand side
$B$ and
solution $x$.

There are also subroutines for solving one or more sets of equations after a full factorization
($p=n$) and for extracting
the diagonal of ${L}_{11}$.