A Rust scientific library for high-performance numerical mathematics, including ODE/DAE solvers, linear algebra, special functions, and tensor calculus.
Russell is a Rust scientific library that provides high-performance numerical tools for computational mathematics and mechanics. It includes solvers for ordinary and differential-algebraic equations, dense and sparse linear algebra operations, special mathematical functions, and tensor calculus. The library is designed to help developers build efficient and reliable simulations in fields like computational mechanics and scientific computing.
Rust developers and researchers working on scientific simulations, computational mechanics, numerical analysis, or any domain requiring robust mathematical and linear algebra computations.
Developers choose Russell for its comprehensive, well-tested implementations of fundamental numerical algorithms in Rust, its focus on performance via integrations with libraries like OpenBLAS and MUMPS, and its emphasis on maintainability and reliability through extensive test coverage.
Rust Scientific Libary. ODE and DAE (Runge-Kutta) solvers. Special functions (Bessel, Elliptic, Beta, Gamma, Erf). Linear algebra. Sparse solvers (MUMPS, UMFPACK). Probability distributions. Tensor calculus.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
The library mandates over 95% test coverage with comprehensive unit and integration tests, ensuring high reliability for scientific computations as stated in the README.
Wraps optimized solvers like MUMPS and UMFPACK for sparse linear algebra and supports Intel MKL over OpenBLAS, enabling peak performance on various hardware.
Each crate includes detailed examples, such as ODE solutions and tensor calculations, and the README provides step-by-step installation guides for multiple platforms.
Separate crates for lab, ode, sparse, stat, and tensor functionalities allow selective use, and installation is supported on Linux, macOS, and Windows via MSYS2.
Requires non-Rust libraries like OpenBLAS, SuiteSparse, and MUMPS, with intricate installation steps, especially on Windows where MSYS2 and manual compilation are needed.
The roadmap lists pending items such as more numerical methods and Windows support for MUMPS, indicating that some areas are still under active development.
As a specialized Rust library, it has a smaller community and tooling compared to established options in languages like Python, and requires Rust proficiency for effective use.