How statement and proof provenance work
The first chip identifies the source of the statement or construction; the second identifies the source of its local proof or verification.
- Literature-sourced: the exact statement appears in a cited source; only wording and notation differ.
- AI-adapted: a semantically identical restatement of literature-sourced material, modulo indexing, notation, and boundary cases adopted by the library.
- AI-generated: a genuinely novel statement formulated by AI, with no source for the claim itself.
These labels describe origin, not correctness: citations and verification chips remain separate evidence.
Fixed-pattern ILU(0) factorization and application
Definition
Let be a field, let , and let the input be a valid CSR record as in Compressed sparse row matrices with stored-entry semantics, representing . Matrix positions in this definition use one-based notation: refers to CSR row and column index . This row/column order is fixed before the procedure begins; vector component label refers to coordinate . The procedure performs no pivoting or reordering. All field operations below are exact.
Let . Scan each row once to check the canonical and
increasing-index conditions and to record whether its diagonal position occurs.
If the input fails either pattern condition, return invalid-pattern. If a row
has no diagonal position, return missing-diagonal(i) for the least such .
Copy the value in each input slot to a work array , and regard the unit diagonal of as implicit. Process rows in increasing order. For each with , in increasing order, do the following:
- If , return
zero-pivot(k). - Set ; this value is the stored factor .
- Let be the increasing list of one-based matrix column labels represented by row 's CSR segment, and let be the corresponding increasing list represented by row 's CSR segment. Set each pointer to the first entry of its list, or to that list's end marker when it is empty. While both pointers are within their lists, compare their current indices. If they are equal, call their common value and update and advance both pointers once. If the current index in is smaller, advance only its pointer once; if the current index in is smaller, advance only its pointer once, making no arithmetic update in either unequal-index branch. Stop when either pointer passes the end of its list. Do not skip a matching slot when a current work value is zero.
After all such have been processed in row , if , return
zero-pivot(i). Otherwise the upper row entries are the current
for and . Continue to the next row.
If every row completes, return ok with the unit-lower factor (stored
strict-lower entries for ) and the upper factor
(stored entries for , ). Both factors
use only positions in ; the diagonal of is implicit, and all other
unstored off-diagonal entries are zero. The numeric values remain stored at
their structural slots if an update makes a value zero.
For a successful factor pair and , apply the preconditioner as follows. For in order, initialize and, for each with in increasing order, update . Then for , initialize ; for each with in decreasing order, update ; finally set . Visit every such stored factor slot exactly once, including slots whose current factor value is zero. These are the forward and backward substitution recurrences, with their sums traversed only over stored strict-triangular slots. The pivot checks ensure every denominator in this application is nonzero. This procedure defines setup and application only; it asserts no factorization identity , Krylov convergence, conditioning improvement, or accuracy guarantee.
Depends on
Used by
Dependency tree · two levels
7 results within two dependency steps of this one, each drawn at its shortest distance from it. An arrow runs from a result to what uses it, so the chart reads left to right and ends at this result, which carries a heavier outline. Every node is a link to that result. Click elsewhere on the chart to enlarge it.
Sources
- Yousef Saad, Iterative Methods for Sparse Linear Systems, 2nd ed., §§10.3.1–10.3.2, printed pp. 301–310 (standard reference, not scraped)
- Richard Barrett et al., Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods, 2nd ed., §§3.4.1–3.4.2, printed pp. 38–41 (standard reference, not scraped)