Overview of faer: High-performance dense linear algebra in Rust
mainfaer is a portable, high-performance dense linear algebra library written in Rust. It provides a high-level API for matrix decompositions and solving linear systems, built upon a lower-level API that allows fine-grained control over memory allocation and multithreading.
Key Features
- Matrix Types: Provides the
Mattype for simple matrix construction and manipulation, alongside lightweight view typesMatRefandMatMutfor building memory views over existing data. - Supported Scalars: Supports native floating-point types
f32,f64,c32, andc64, as well as user-defined types (e.g., extended precision, complex numbers, dual/hyper-dual numbers) that satisfy the required interface. - Decompositions: Implements state-of-the-art algorithms for:
- Cholesky (LLT, LDLT, and Bunch-Kaufman LDLT)
- QR (with and without column pivoting)
- LU (with partial and full pivoting)
- SVD (with or without singular vectors, thin or full)
- Eigenvalue decomposition (with or without eigenvectors)
- Performance: Uses explicit SIMD instructions (x86-64 and Aarch64/NEON) and the
Rayonlibrary for high-performance parallelism. - Platform Support: Supports all platforms supported by Rust.