1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//! Eigenvalue sign classification (inertia) for symmetric matrices.
//!
//! Provides [`Inertia`], which records the count of positive, negative, and zero
//! eigenvalues of a symmetric matrix. Used both for reference factorization
//! validation and for live inertia computation from [`super::MixedDiagonal`].
//!
//! Reference: Hogg, Duff & Lopez (2020), "A New Sparse LDL^T Solver Using
//! A Posteriori Threshold Pivoting", SIAM J. Sci. Comput. 42(4), Section 2.
use Deserialize;
/// Eigenvalue sign classification of a symmetric matrix.
///
/// Records the number of positive, negative, and zero eigenvalues. This is a
/// fundamental property of symmetric matrices that is preserved under congruence
/// transformations (Sylvester's Law of Inertia) and can be determined from the
/// D factor in an LDL^T factorization without computing actual eigenvalues.
///
/// # References
///
/// - Hogg, Duff & Lopez (2020), Section 2: inertia as a correctness check
/// for indefinite factorizations
/// - Bunch & Kaufman (1977): inertia computation from pivot classifications