Crate rlst

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 sparse matrices on a single node or via MPI on multiple nodes.
  • 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 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 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 io library 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. This module provides interfaces to threading control functions in BLAS libraries that support it.
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
Dot product between compatible arrays.
linspace
Create an array of n equidistant points with first value a and second value b.
println_mpi
A println function that is MPI aware and outputs only on rank 0.
rlst_dynamic_array
Create a dynamic array
rlst_static_array
Create a static array
rlst_static_type
Type of a static 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
Trace the execution time of a function