feat(internal): add Jacobi symmetric-eigendecomposition helper

Hand-rolled symmetric-matrix eigendecomposition via the cyclic Jacobi
rotation method. Returns sorted (eigenvalue, eigenvector) pairs in
descending order. Pure f64 row-major `Vec<Vec<f64>>` interface so we
don't pull in nalgebra for one algorithm.

Lives in `src/internal/eigen.rs` (new module). Used by the upcoming
CMA-ES implementation to maintain the covariance matrix's
eigendecomposition each generation. Tested against the standard
2x2 case, the diagonal case, and a known 3x3 result.
This commit is contained in:
2026-05-05 09:51:11 -06:00
parent d82fcfc658
commit 325c8cdd37
3 changed files with 203 additions and 0 deletions
+3
View File
@@ -0,0 +1,3 @@
//! Internal helpers used by built-in algorithms but not part of the public API.
pub(crate) mod eigen;