### HSL_MI13 Preconditioners for saddle-point systems

Given a block symmetric matrix

$${K}_{H}=\left(\begin{array}{cc}\hfill H\hfill & \hfill {A}^{T}\hfill \\ \hfill A\hfill & \hfill -C\hfill \end{array}\right),$$

where $H$ has
$n$ rows and
columns and $A$
has $m$ rows
and $n$
columns, this package constructs preconditioners of the form

$${K}_{G}=\left(\begin{array}{cc}\hfill G\hfill & \hfill {A}^{T}\hfill \\ \hfill A\hfill & \hfill -C\hfill \end{array}\right).$$

Here, the leading block matrix $G$ is a
suitably chosen approximation to $H$;
it may either be prescribed explicitly, in which case a symmetric indeﬁnite factorization
of ${K}_{G}$
will be formed using HSL_MA57, or implicitly. In the latter case,
${K}_{G}$ will
be ordered to the form

$${K}_{G}=P\left(\begin{array}{ccc}\hfill {G}_{11}^{}\hfill & \hfill {G}_{21}^{T}\hfill & \hfill {A}_{1}^{T}\hfill \\ \hfill {G}_{21}^{}\hfill & \hfill {G}_{22}^{}\hfill & \hfill {A}_{2}^{T}\hfill \\ \hfill {A}_{1}^{}\hfill & \hfill {A}_{2}^{}\hfill & \hfill -C\hfill \end{array}\right){P}^{T}$$

where $P$ is a
permutation and ${A}_{1}$
is an invertible sub-block (“basis”) of the columns of
$A$; the selection and factorization
of ${A}_{1}$ uses HSL_MA48 —
any dependent rows in $A$
are removed at this stage. Once the preconditioner has been constructed, solutions to
the preconditioning system

$$\left(\begin{array}{cc}\hfill G\hfill & \hfill {A}^{T}\hfill \\ \hfill A\hfill & \hfill -C\hfill \end{array}\right)\left(\begin{array}{c}\hfill x\hfill \\ \hfill y\hfill \end{array}\right)=\left(\begin{array}{c}\hfill a\hfill \\ \hfill b\hfill \end{array}\right)$$

may be computed.

Full advantage is taken of any zero coeﬃcients in the matrices
$H$,
$A$ and
$C$.