Skip to main content

Module ick

Module ick 

Source
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§

IncompleteCholeskyK
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.