Skip to main content

oxicuda_sparse/eig/
mod.rs

1//! Sparse eigenvalue solvers.
2//!
3//! This module provides iterative eigensolvers for large sparse symmetric
4//! matrices. Unlike the Krylov building blocks in [`ops::krylov`](crate::ops::krylov)
5//! (which generate the kernels for Lanczos/Arnoldi tridiagonalisation), the
6//! solvers here drive a complete host-side iteration to convergence and return
7//! converged eigenpairs.
8//!
9//! - [`mod@dense_sym`] -- an inline cyclic-Jacobi solver for the small dense
10//!   symmetric eigenproblems that arise in projected (Rayleigh-Ritz) subspaces.
11//! - [`mod@lobpcg`] -- the Locally Optimal Block Preconditioned Conjugate
12//!   Gradient method for the smallest eigenpairs of a sparse SPD matrix.
13//! - [`mod@shift_invert`] -- shift-invert power iteration for the eigenvalue
14//!   nearest a target shift (interior eigenvalues).
15
16pub mod dense_sym;
17pub mod lobpcg;
18pub mod shift_invert;
19
20pub use dense_sym::jacobi_eigh;
21pub use lobpcg::{LobpcgResult, lobpcg};
22pub use shift_invert::{ShiftInvertResult, shift_invert};