Skip to content

feat(numerics): add LU and Cholesky decompositions - #14

Open
backlundtransform wants to merge 2 commits into
masterfrom
feat/lu-cholesky-decompositions
Open

feat(numerics): add LU and Cholesky decompositions#14
backlundtransform wants to merge 2 commits into
masterfrom
feat/lu-cholesky-decompositions

Conversation

@backlundtransform

Copy link
Copy Markdown
Owner
  • LuDecomposition with partial pivoting (PA = LU): cached factorization with Solve for vector/list/matrix right-hand sides, Determinant, Inverse, IsSingular, Lower/Upper/PermutationMatrix
  • CholeskyDecomposition (A = L*L^T) with IsPositiveDefinite, Solve, Determinant, Inverse
  • Extension facade matrix.Lu() / matrix.Cholesky()
  • Matrix.Inverse now uses LU internally (O(n^3) instead of adjugate O(n!)), same public API and error messages
  • LinearSystemSolver overloads solve via LU substitution instead of computing the full inverse
  • 25 new unit tests; full suite green (1486 passed)
  • Check off LinearAlgebra roadmap Phase 1

backlundtransform and others added 2 commits July 27, 2026 20:44
- LuDecomposition with partial pivoting (P*A = L*U): cached factorization
  with Solve for vector/list/matrix right-hand sides, Determinant, Inverse,
  IsSingular, Lower/Upper/PermutationMatrix
- CholeskyDecomposition (A = L*L^T) with IsPositiveDefinite, Solve,
  Determinant, Inverse
- Extension facade matrix.Lu() / matrix.Cholesky()
- Matrix.Inverse now uses LU internally (O(n^3) instead of adjugate O(n!)),
  same public API and error messages
- LinearSystemSolver overloads solve via LU substitution instead of
  computing the full inverse
- 25 new unit tests; full suite green (1486 passed)
- Check off LinearAlgebra roadmap Phase 1

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- QrDecomposition via Householder reflections: economy Q/R, IsFullRank with
  relative tolerance, least squares Solve for overdetermined systems
- EigenDecomposition (EISPACK/JAMA port): symmetric path via Householder
  tridiagonalization + implicit QL with shifts (ascending eigenvalues,
  orthonormal eigenvectors); non-symmetric path via Hessenberg reduction +
  shifted QR iteration with complex conjugate pair support (A*V = V*D with
  block diagonal D)
- Extension facade matrix.Qr() / matrix.Eigen()
- Quantum module migrated: SymmetricEigenSolver (Jacobi) removed,
  SchrodingerExtensions now uses the general EigenDecomposition
- 24 new unit tests: Q orthonormality, eigenpair residuals, least squares
  vs normal equations, complex pairs, analytic Laplacian eigenvalues
- Check off LinearAlgebra roadmap Phase 2

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant