Linear algebra package for Rust with rust-ndarray.
Currently three LAPACKE implementations are supported and tested:
- OpenBLAS
- needs
gfortran
(or other Fortran compiler)
- needs
- Netlib
- needs
cmake
andgfortran
- needs
- Intel MKL (non-free license, see the linked page)
- needs
curl
There are two ways to link LAPACKE backend:
- needs
There are three features corresponding to the backend implementations (openblas
/ netlib
/ intel-mkl
):
[depencdencies]
ndarray = "0.11"
ndarray-linalg = { version = "0.9", features = ["openblas"] }
For the sake of linking flexibility, you can provide LAPACKE implementation (as an extern crate
) yourself.
You should link a LAPACKE implementation to a final crate (like binary executable or dylib) only, not to a Rust library.
[depencdencies]
ndarray = "0.11"
ndarray-linalg = "0.9"
openblas-src = "0.5" # or another backend of your choice
You must add extern crate
to your code in this case:
extern crate ndarray;
extern crate ndarray_linalg;
extern crate openblas_src; // or another backend of your choice
If you creating a library depending on this crate, we encourage you not to link any backend for flexibility:
[depencdencies]
ndarray = "0.11"
ndarray-linalg = { version = "0.9", default-features = false }
However, if you hope simplicity instead of the flexibility, you can link your favorite backend in the way described above.
To run tests or examples for ndarray-linalg
, you must specify the desired
backend. For example, you can run the tests with the OpenBLAS backend like
this:
cargo test --features=openblas
See examples directory.
Note that to run an example, you must specify the desired backend. For example,
you can run the the solve
example with the OpenBLAS backend like this:
cargo run --example solve --features=openblas