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.
- Support for BLAS matrix-matrix multiplication and a subset of Lapack operations (incl. LU, SVD, QR).
- CSR and CSC sparse matrices on a single node or via MPI on multiple nodes.
- An interface to UMFPACK for the solution of sparse linear systems.
- Import and export into Matrix-Market format.
- A general
operator
interface that can abstract linear operators, and iterative solvers acting on linear operators.
To learn about the features of RLST please have a look at the following documents.
- Initialising RLST.
- An introduction to dense linear algebra with RLST.
- Sparse matrix operations.
- Using the operator interface for iterative solvers.
- Import and export of matrices.
- BLAS dependencies, multithreading, and GPU offloading.
Re-exports§
pub use prelude::*;
Modules§
- dense
- Dense array types and operations on them.
- doc
- The RLST documentation.
- external
- Interfaces to external libraries
- io
- The
io
library provides import and export routines for various file formats. - operator
- The operator library contains traits and methods to support arbitrary operator types.
- prelude
- Import everything from here to get the standard RLST functionality
- sparse
- RLST sparse
- threading
- Control BLAS threading if possible
- tracing
- Simple structures to trace execution times of functions
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
- println_
mpi - Output only on root rank 0
- rlst_
array_ from_ slice1 - Create a new one dimensional array from a given data slice.
- rlst_
array_ from_ slice2 - Create a new two dimensional array from a given data slice.
- rlst_
array_ from_ slice3 - Create a new three dimensional array from a given data slice.
- rlst_
array_ from_ slice4 - Create a new four dimensional array from a given data slice.
- rlst_
array_ from_ slice5 - Create a new five dimensional array from a given data slice.
- rlst_
array_ from_ slice_ mut1 - Create a new one dimensional array from a given mutable data slice.
- rlst_
array_ from_ slice_ mut2 - Create a new two dimensional array from a given mutable data slice.
- rlst_
array_ from_ slice_ mut3 - Create a new three dimensional array from a given mutable data slice.
- rlst_
array_ from_ slice_ mut4 - Create a new four dimensional array from a given mutable data slice.
- rlst_
array_ from_ slice_ mut5 - Create a new five dimensional array from a given mutable data slice.
- rlst_
dynamic_ array1 - Create a new two one dimensional heap allocated array.
- rlst_
dynamic_ array2 - Create a new two dimensional heap allocated array.
- rlst_
dynamic_ array3 - Create a new three dimensional heap allocated array.
- rlst_
dynamic_ array4 - Create a new four dimensional heap allocated array.
- rlst_
dynamic_ array5 - Create a new five dimensional heap allocated array.
- rlst_
rank1_ array - Create a new rank1 array of the form
u x v^T
.