Skip to main content

symmetric_eigen

Function symmetric_eigen 

Source
pub fn symmetric_eigen(
    n: usize,
    a: &mut [f64],
    eigvecs: &mut [f64],
) -> Result<(), SolversError>
Expand description

Eigendecomposition of a symmetric n×n matrix by cyclic Jacobi rotations.

On entry a (row-major, length n*n) holds the symmetric matrix; it is overwritten — on return its diagonal a[i*n+i] holds the eigenvalues (in Jacobi’s natural order, not sorted). eigvecs (length n*n) receives the orthonormal eigenvectors as columns: column j is the unit eigenvector for the eigenvalue at a[j*n+j]. Zero allocation — both buffers are caller-owned.

Returns SolversError::InvalidDimension on a shape mismatch, or SolversError::InvalidParameters if a is not (within tolerance) symmetric.