Version 1.4.1
1st November 2023 User documentation
 Recent Changes

Code Download
 Single
 Double
HSL_MI30: Symmetric indefinite saddlepoint system: signed incomplete Cholesky factorization
Let \(K\) be a sparse symmetric saddlepoint matrix of the form \[K = \left( \begin{array}{cc}
A & B^T \\
B & C
\end{array}
\right),\] where \(A\) is \((nm) \times (nm)\) symmetric positive definite, \(B\) is rectangular \(m \times (nm)\) and of full rank (\(m < n\)), and \(C\) is \(m \times m\) symmetric positive semidefinite. 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 nonnegative shifts.
The incomplete factorization may be used for preconditioning when solving the saddlepoint 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).
Note: If an incomplete Cholesky factorization preconditioner for a positivedefinite system is required, HSL_MI28
should be used.