Skip to main content

Crate math_audio_solvers

Crate math_audio_solvers 

Source
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::DeflationSubspace;
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 iterative::gmres_deflated;
pub use iterative::gmres_deflated;
pub use iterative::gmres_deflated_preconditioned;
pub use iterative::pcg;
pub use direct::LuError;
pub use direct::LuFactorization;
pub use direct::lu_factorize;
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;

Modules§

direct
Direct solvers for linear systems
iterative
Iterative solvers for linear systems
parallel
Parallel utilities with feature-gated implementations
preconditioners
Preconditioners for iterative solvers
sparse
Sparse matrix structures (CSR format)
traits
Core traits for linear algebra operations