Expand description
The Rust linear solver toolbox (RLST).
The purpose of this library is to provide a comprehensive set of tools for dense and sparse linear algebra operations required in the solution of partial differential equations and other problems. RLST has the following feature set.
- n-dimensional array structures that can be allocated on the stack or heap.
- BLAS matrix multiplication and LAPACK decompositions, eigenproblems, and matrix equations.
- CSR sparse matrices on one node or distributed with MPI, plus optional UMFPACK solves through
the companion
rlst-suitesparsecrate. - Matrix Market import and export.
- Abstract linear operators and iterative solvers.
- Optional FFTW transforms and Burn tensor conversion.
To learn about the features of RLST please have a look at the following documents.
Re-exports§
pub use crate::dense::array::Array;pub use crate::dense::array::empty_array;pub use dense::array::DynArray;pub use dense::array::SliceArray;pub use dense::array::SliceArrayMut;pub use dense::array::StridedDynArray;pub use dense::array::ZeroDimArray;pub use traits::*;pub use base_types::*;
Modules§
- base_
types - Basic types.
- dense
- Dense array types and operations on them.
- doc
- The RLST documentation.
- interface
- Interfaces to other libraries
- interpolation
- Functions to evaluate interpolation polynomials.
- io
- The
iolibrary provides import and export routines for various file formats. - operator
- The operator library contains traits and methods to support arbitrary operator types.
- simd
- Basic traits for SIMD Operations
- sparse
- RLST sparse
- threading
- BLAS threading control.
- tracing
- Simple structures to trace execution times of functions.
- traits
- Traits used by RLST.
Macros§
- assert_
array_ abs_ diff_ eq - Assert that the absolute difference of two arrays is small enough
- assert_
array_ relative_ eq - Assert that the relative difference of two arrays is small enough
- assert_
matrix_ abs_ diff_ eq - Assert that the absolute difference of two matrices is small enough
- assert_
matrix_ relative_ eq - Assert that the relative difference of two matrices is small enough
- assert_
matrix_ ulps_ eq - TODO: document
- diag
- Create a new n-dimensional diagonal array from a list of diagonal entries.
- dot
- Allocate a direct contraction of the last axis of
awith the first ofb. - dot_
blas - BLAS-backed multiplication between compatible dense arrays.
- dot_
into - Contract the last axis of
awith the first axis ofb, overwritingc. - linspace
- Create an array of
nequidistant points with first valueaand second valueb. - println_
mpi - A println function that is MPI aware and outputs only on rank 0.
- rlst_
dynamic_ array - Allocate a dynamic column-major RLST array.
- rlst_
static_ array - Create a stack-backed column-major RLST array.
- rlst_
static_ type - Expand to the type of a stack-backed RLST array.
Constants§
- CACHE_
ALIGNED - Align memory along cache lines
- FFTW_
ALIGNED - Align memory for FFTW. FFTW requires 16 bytes alignment
- PAGE_
ALIGNED - Align memory along page lines
Attribute Macros§
- measure_
duration - Instrument a function with entry, exit, and elapsed-time log messages.