Crate ndarray_linalg

Source
Expand description

The ndarray-linalg crate provides linear algebra functionalities for ArrayBase, the n-dimensional array data structure provided by ndarray.

ndarray-linalg leverages LAPACK’s routines using the bindings provided by blas-lapack-rs/lapack.

§Linear algebra methods

§Naming Convention

Each routine is usually exposed as a trait, implemented by the relevant types.

For each routine there might be multiple “variants”: different traits corresponding to the different ownership possibilities of the array you intend to work on.

For example, if you are interested in the QR decomposition of a square matrix, you can use:

  • QRSquare, if you hold an immutable reference (i.e. &self) to the matrix you want to decompose;
  • QRSquareInplace, if you hold a mutable reference (i.e. &mut self) to the matrix you want to decompose;
  • QRSquareInto, if you can pass the matrix you want to decompose by value (e.g. self).

Depending on the algorithm, each variant might require more or less copy operations of the underlying data.

Details are provided in the description of each routine.

§Utilities

Re-exports§

pub use crate::lobpcg::TruncatedEig;
pub use crate::lobpcg::TruncatedOrder;
pub use crate::lobpcg::TruncatedSvd;
pub use crate::assert::*;
pub use crate::cholesky::*;
pub use crate::convert::*;
pub use crate::diagonal::*;
pub use crate::eig::*;
pub use crate::eigh::*;
pub use crate::generate::*;
pub use crate::inner::*;
pub use crate::layout::*;
pub use crate::least_squares::*;
pub use crate::norm::*;
pub use crate::operator::*;
pub use crate::opnorm::*;
pub use crate::qr::*;
pub use crate::solve::*;
pub use crate::solveh::*;
pub use crate::svd::*;
pub use crate::svddc::*;
pub use crate::trace::*;
pub use crate::triangular::*;
pub use crate::tridiagonal::*;
pub use crate::types::*;

Modules§

assert
Assertions for array
cholesky
Cholesky decomposition of Hermitian (or real symmetric) positive definite matrices
convert
utilities for convert array
diagonal
Vector as a Diagonal matrix
eig
Eigenvalue decomposition for non-symmetric square matrices
eigh
Eigendecomposition for Hermitian matrices.
error
Define Errors
generate
Generator functions for matrices
inner
krylov
Krylov subspace methods
layout
Convert ndarray into LAPACK-compatible matrix format
least_squares
Least Squares
lobpcg
norm
Norm of vectors
operator
Linear operator algebra
opnorm
Operator norm
qr
QR decomposition
solve
Solve systems of linear equations and invert matrices
solveh
Solve Hermitian (or real symmetric) linear problems and invert Hermitian (or real symmetric) matrices
svd
Singular-value decomposition (SVD)
svddc
Singular-value decomposition (SVD) by divide-and-conquer (?gesdd)
trace
Trace calculation
triangular
Methods for triangular matrices
tridiagonal
Vectors as a Tridiagonal matrix & Methods for tridiagonal matrices
types
Basic types and their methods for linear algebra

Macros§

assert_aclose
assert_close_l1
assert_close_l2
assert_close_max
assert_rclose