ndarray-linalg
Linear algebra package for Rust with ndarray based on external LAPACK implementations.
Examples
See examples directory.
Note: To run examples, you must specify which backend will be used (as described below). For example, you can execute the solve example with the OpenBLAS backend like this:
and run all tests of ndarray-linalg with OpenBLAS
BLAS/LAPACK Backend
Three BLAS/LAPACK implementations are supported:
- OpenBLAS
- needs
gfortran(or other Fortran compiler)
- needs
- Netlib
- needs
cmakeandgfortran
- needs
- Intel MKL (non-free license, see the linked page)
There are three features corresponding to the backend implementations (openblas / netlib / intel-mkl):
[]
= "0.13"
= { = "0.12", = ["openblas"] }
Tested Environments
| Backend | Linux | Windows | macOS |
|---|---|---|---|
| OpenBLAS | ✔️ | - | ✔️ |
| Netlib | ✔️ | - | ✔️ |
| Intel MKL | ✔️ | ✔️ | ✔️ |
For librarian
If you creating a library depending on this crate, we encourage you not to link any backend:
[]
= "0.13"
= "0.12"
Link backend crate manually
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.
[]
= "0.13"
= "0.12"
= "0.7" # 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
Generate document with KaTeX
You need to set RUSTDOCFLAGS explicitly:
RUSTDOCFLAGS="--html-in-header katex-header.html" cargo doc --no-deps
This only works for --no-deps build because katex-header.html does not exists for dependent crates.
If you wish to set RUSTDOCFLAGS automatically in this crate, you can put .cargo/config:
[]
= ["--html-in-header", "katex-header.html"]
But, be sure that this works only for --no-deps. cargo doc will fail with this .cargo/config.