Expand description
Eigendecomposition for symmetric matrices
Provides SIMD-accelerated eigenvalue and eigenvector computation for symmetric (Hermitian) matrices, enabling PCA, spectral clustering, and other algorithms without external dependencies like nalgebra.
§Algorithm
Uses the Jacobi eigenvalue algorithm, which is numerically stable and well-suited for SIMD parallelization. For large matrices (>1000 dimensions), GPU acceleration is available via wgpu.
§Example
use trueno::{Matrix, SymmetricEigen};
// Create a symmetric positive definite matrix
let cov = Matrix::from_vec(2, 2, vec![
2.0, 1.0,
1.0, 2.0,
])?;
let eigen = SymmetricEigen::new(&cov)?;
// Eigenvalues in descending order (PCA convention)
let values = eigen.eigenvalues();
assert!((values[0] - 3.0).abs() < 1e-6); // λ₁ = 3
assert!((values[1] - 1.0).abs() < 1e-6); // λ₂ = 1Structs§
- Eigen
Iterator - Iterator over eigenvalue-eigenvector pairs
- Symmetric
Eigen - Symmetric matrix eigendecomposition