Expand description
Incomplete Cholesky factorization with level-of-fill – IC(k).
For a symmetric positive-definite (SPD) matrix A this computes a sparse
lower-triangular factor L such that L Lᵀ ≈ A, where L is allowed fill
entries up to level k away from an original non-zero. IC(0) keeps only the
original lower-triangle positions; larger k admits more fill, producing a
more accurate (and, when k ≥ n, an exact) factorization.
§Symbolic phase
The fill pattern is determined with the same level-of-fill recurrence as the
crate’s ILU(k) (iluk): an original entry has
level 0, and a fill entry (i, j) receives level
min over m ( level(i, m) + level(m, j) + 1 ). Because A is symmetric the
filled graph is symmetric, so the pattern of L is exactly the lower
triangle of the symbolic ILU(k) pattern of A. With k ≥ n this reproduces
the complete Cholesky fill and the factorization is exact.
§Numeric phase
A left-looking Cholesky restricted to the symbolic pattern: for each column
j, L[j, j] = sqrt(A[j, j] − Σ_m L[j, m]²) and
L[i, j] = (A[i, j] − Σ_m L[i, m] L[j, m]) / L[j, j] for i > j in the
pattern, where the sums run over columns m < j common to rows i and j.
A non-positive pivot signals that the (modified) matrix is not SPD.
Structs§
- Incomplete
CholeskyK - An IC(k) factorization: the lower-triangular Cholesky factor
L(including its diagonal) stored in host CSR layout, together with the fill level used.
Functions§
- ic_k
- Computes the IC(k) factorization of an SPD host CSR matrix.