Skip to main content

Module eigen

Module eigen 

Source
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);  // λ₂ = 1

Structs§

EigenIterator
Iterator over eigenvalue-eigenvector pairs
SymmetricEigen
Symmetric matrix eigendecomposition