-
Notifications
You must be signed in to change notification settings - Fork 10
Open
0 / 20 of 2 issues completedLabels
component: linear system solverLinear system solver used for step computationsLinear system solver used for step computationstype: enhancementNew feature or requestNew feature or request
Description
Eigen::SimplicialLDLT encounters cases where it can't factorize symmetric indefinite matrices, no matter how much regularization is applied. There's several alternatives that should address this failure mode.
Bunch-Kaufman factorization
- Original paper: https://www.ams.org/journals/mcom/1977-31-137/S0025-5718-1977-0428694-0/S0025-5718-1977-0428694-0.pdf
- "Factorizing symmetric indefinite matrices", Fletcher: https://www.sciencedirect.com/science/article/pii/0024379576900719
- PowerPoint on Bunch-Kaufman factorization: https://oz.nthu.edu.tw/~d947207/Chap13_GE3.pdf
- Paper on Bunch-Kaufman factorization for banded matrices: https://apps.dtic.mil/sti/tr/pdf/ADA211415.pdf
- Implementation of sparse Bunch-Kaufman factorization in Rust: https://github.com/sarah-quinones/faer-rs/blob/main/faer/src/sparse/linalg/cholesky.rs
"Numerical Optimization" talks about symmetric indefinite factorization in appendix A, page 610. They suggest bounded Bunch-Kaufman to limit the element growth of Bunch-Kaufman while having fewer floating point operations than Bunch-Parlett.
Randomized Complete Pivoting for Solving Symmetric Indefinite Linear Systems
- Paper on randomized complete pivoting, whose introduction covers several different factorization and pivoting methods: https://arxiv.org/pdf/1710.00125
- The main downside of this method is the randomness introducing nondeterminism into the solver
Sub-issues
Metadata
Metadata
Assignees
Labels
component: linear system solverLinear system solver used for step computationsLinear system solver used for step computationstype: enhancementNew feature or requestNew feature or request