## Version 1.4.0

5th February 2023

Recent Changes

Let $$K$$ be a sparse symmetric saddle-point matrix of the form $K = \left( \begin{array}{cc} A & B^T \\ B & -C \end{array} \right),$ where $$A$$ is $$(n-m) \times (n-m)$$ symmetric positive definite, $$B$$ is rectangular $$m \times (n-m)$$ and of full rank ($$m < n$$), and $$C$$ is $$m \times m$$ symmetric positive semi-definite. HSL_MI30 computes a signed incomplete Cholesky factorization. The matrix $$K$$ is optionally reordered, scaled and, if necessary, shifted to avoid breakdown of the factorization so that the incomplete factorization of \begin{aligned} \bar{K} = S Q^T\left( \begin{array}{cc} A & B^T \\ B & -C \end{array} \right)Q S + \left( \begin{array}{cc} \alpha(1) I & 0 \\ & -\alpha(2)I \end{array} \right)\end{aligned} is computed, where $$Q$$ is a permutation matrix, $$S$$ is a diagonal scaling matrix and $$\alpha(1:2)$$ are non-negative shifts.
The incomplete factorization may be used for preconditioning when solving the saddle-point system $$Kx = b$$. A separate entry performs the preconditioning operation ${y = Pz}$ where $${P} = (\overline{L} D {\overline{L}}^T)^{-1}$$, with $$\overline{L} = Q S^{-1} L$$, is the incomplete signed Cholesky factorization preconditioner. An option exists to use $${P} = (\overline{L}|D|{\overline{L}}^T)^{-1}$$ as the preconditioner.
The incomplete factorization is based on a matrix decomposition of the form $\label{llt} \overline{K} = (L+R)D(L+R)^T - E,$ where $$L$$ is lower triangular with unit diagonal entries, $$R$$ is a strictly lower triangular matrix with small entries that is used to stabilize the factorization process, $$D$$ is a diagonal matrix, and $$E$$ has the structure $\label{llt1} E = RDR^T + F + F^T,$ where $$F$$ is strictly lower triangle. $$F$$ is discarded while $$R$$ is used in the computation of $$L$$ but is then discarded. The user controls the dropping of small entries from $$L$$ and $$R$$ and the maximum number of entries within each column of $$L$$ and $$R$$ (and thus the amount of memory for $$L$$ and the intermediate work and memory used in computing the incomplete factorization).