Scientific Computing
Several crates have populated the scientific computing space especially regarding matrix operations and linear algebra. But it’s still too early to know which crates will emerge as central to a robust scientific computing ecosystem.
Given the value of iterative analysis in scientific computing, it’s worth checking out Evcxr REPL. There is also a Jupyter backend for Rust.
Also, check out some of these resources:
- A gemmed rabbit hole - concerning matrix multiplication
- Linear Algebra in Rust - intro to the module that became rulinalg
euclid [ crate · repo · docs ]
Geometry primitives
nalgebra [ crate · repo · docs ]
Linear algebra library with transformations and statically-sized or dynamically-sized matrices.
statrs [ crate · repo · docs ]
Statistical computing library for Rust
cgmath [ crate · repo · docs ]
A linear algebra and mathematics library for computer graphics.
sprs [ crate · repo · docs ]
A sparse matrix library
matrixmultiply [ crate · repo · docs ]
General matrix multiplication for f32 and f64 matrices. Operates on matrices with general layout (they can use arbitrary row and column stride). Detects and uses AVX or SSE2 on x86 platforms transparently for higher performance. Uses a microkernel strategy, so that the implementation is easy to parallelize and optimize.
kmeans-colors [ crate · repo · docs ]
Simple k-means clustering to find dominant colors in images. Backed by a generic k-means implementation offered as a standalone library.
rulinalg [ crate · repo · docs ]
A linear algebra library.
bio [ crate · repo · docs ]
A bioinformatics library for Rust. This library provides implementations of many algorithms and data structures that are useful for bioinformatics, but also in other fields.
ndarray-linalg [ crate · repo · docs ]
Linear algebra package for rust-ndarray using LAPACK
ndarray-stats [ crate · repo · docs ]
Statistical routines for ArrayBase, the n-dimensional array data structure provided by ndarray.
argmin [ crate · repo · docs ]
Mathematical optimization in pure Rust
GSL [ crate · repo · docs ]
A rust binding for the GSL (the GNU scientific library)
peroxide [ crate · repo · docs ]
Rust comprehensive scientific computation library contains linear algebra, numerical analysis, statistics and machine learning tools with farmiliar syntax
rustacuda [ crate · repo · docs ]
CUDA Driver API Wrapper
lapack [ crate · repo · docs ]
The package provides wrappers for LAPACK (Fortran).
mop [ crate · repo · docs ]
Flexible and modular single or multi-objective solver for contiguous and discrete problems
coaster [ crate · repo · docs ]
high-performance computation on any hardware
blas [ crate · repo · docs ]
The package provides wrappers for BLAS (Fortran).
em [ crate · repo · docs ]
A macro for executing a subset of Rust with OpenCL
emu_core [ crate · repo · docs ]
A low-level modular, extensible GPGPU compute library with cross-platform support
smartcore [ crate · repo · docs ]
The most advanced machine learning library in rust.
cuda [ crate · repo · docs ]
CUDA bindings.
collenchyma [ crate · repo · docs ]
high-performance computation on any hardware
linxal [ crate · repo · docs ]
Linear Algebra package with rust-ndarray interface
cublas [ crate · repo · docs ]
safe Rust wrapper for CUDA's cuBLAS
blasoxide [ crate · repo · docs ]
BLAS implementation in rust
numrs [ crate · repo · docs ]
A numerical computations library for Rust
parenchyma [ crate · repo · docs ]
A high-performance computing (HPC) framework
scirust [ crate · repo · docs ]
A scientific computing library
qcgpu [ crate · docs ]
Open Source, High Performance & Hardware Accelerated, Quantum Computer Simulation in Rust
Looking for something you didn't find? Try asking on Zulip chat.