Crate rlst

Source
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.

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.