Expand description
High-performance linear solvers for BEM and FEM
This crate provides a collection of iterative and direct solvers for linear systems, along with sparse matrix representations and preconditioners.
§Features
- Iterative Solvers: GMRES, BiCGSTAB, CGS, CG
- Direct Solvers: LU decomposition (with BLAS and pure-Rust fallbacks)
- Preconditioners: Jacobi, ILU, block diagonal
- Sparse Matrices: CSR format with efficient matrix-vector products
- Generic Scalar Types: Works with Complex64, Complex32, f64, f32
§Example
ⓘ
use math_audio_solvers::{CsrMatrix, gmres, GmresConfig};
use num_complex::Complex64;
// Create a sparse system matrix
let matrix = CsrMatrix::from_dense(&dense_matrix, 1e-10);
// Solve with GMRES
let config = GmresConfig::default();
let solution = gmres(&matrix, &rhs, &config)?;Re-exports§
pub use sparse::CsrBuilder;pub use sparse::CsrMatrix;pub use traits::ComplexField;pub use traits::LinearOperator;pub use traits::Preconditioner;pub use iterative::BiCgstabConfig;pub use iterative::BiCgstabSolution;pub use iterative::CgConfig;pub use iterative::CgSolution;pub use iterative::CgsConfig;pub use iterative::CgsSolution;pub use iterative::GmresConfig;pub use iterative::GmresSolution;pub use iterative::bicgstab;pub use iterative::cg;pub use iterative::cgs;pub use iterative::gmres;pub use direct::LuFactorization;pub use direct::lu_solve;pub use preconditioners::AdditiveSchwarzPreconditioner;pub use preconditioners::AmgCoarsening;pub use preconditioners::AmgConfig;pub use preconditioners::AmgCycle;pub use preconditioners::AmgDiagnostics;pub use preconditioners::AmgInterpolation;pub use preconditioners::AmgPreconditioner;pub use preconditioners::AmgSmoother;pub use preconditioners::DiagonalPreconditioner;pub use preconditioners::IdentityPreconditioner;pub use preconditioners::IluColoringPreconditioner;pub use preconditioners::IluFixedPointPreconditioner;pub use preconditioners::IluPreconditioner;