diff --git a/Cargo.toml b/Cargo.toml index 238cc12..921367d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lapack-src" -version = "0.12.0" +version = "0.13.0" edition = "2024" license = "Apache-2.0 OR MIT" authors = [ @@ -24,7 +24,10 @@ changelog = "CHANGELOG.md" [features] accelerate = ["accelerate-src"] -intel-mkl = ["intel-mkl-src"] +intel-mkl-dynamic-parallel = ["intel-mkl-src/mkl-dynamic-lp64-iomp"] +intel-mkl-dynamic-sequential = ["intel-mkl-src/mkl-dynamic-lp64-seq"] +intel-mkl-static-parallel = ["intel-mkl-src/mkl-static-lp64-iomp"] +intel-mkl-static-sequential = ["intel-mkl-src/mkl-static-lp64-seq"] netlib = ["netlib-src"] openblas = ["openblas-src"] r = ["r-src"] @@ -47,4 +50,4 @@ optional = true [dependencies.r-src] version = "0.2.1" -optional = true \ No newline at end of file +optional = true diff --git a/README.md b/README.md index 9b25456..d60aeb4 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,13 @@ lapack-src = { version = "0.12", features = ["openblas"] } lapack-src = { version = "0.12", features = ["r"] } ``` +### Intel MKL Configuration + +The `intel-mkl` feature will *statically* link the *sequential LP64* version of +the MKL library. To link other versions of the library, check the `intel-mkl-*-*-*` +features inside this crate, which are analogous to the feature flags of +the [`intel-mkl-src` crate] (https://crates.io/crates/intel-mkl-src). + ## Contribution Your contribution is highly appreciated. Do not hesitate to open an issue or a diff --git a/src/lib.rs b/src/lib.rs index 6fa7684..e8a34d3 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -7,7 +7,11 @@ //! The following implementations are available: //! //! * `accelerate`, which is the one in the [Accelerate] framework (macOS only), -//! * `intel-mkl`, which is the one in [Intel MKL], +//! * `intel-mkl-*`, which is the one in [Intel MKL], where +//! * `intel-mkl-dynamic-parallel` dynamically links the parallel backend of MKL +//! * `intel-mkl-dynamic-sequential` dynamically links the sequential backend of MKL +//! * `intel-mkl-static-parallel` statically links the parallel backend of MKL +//! * `intel-mkl-static-sequential` statically links the sequential backend of MKL //! * `netlib`, which is the reference one by [Netlib], //! * `openblas`, which is the one in [OpenBLAS], and //! * `r`, which is the one in [R]. @@ -37,7 +41,12 @@ #[cfg(feature = "accelerate")] extern crate accelerate_src as raw; -#[cfg(feature = "intel-mkl")] +#[cfg(any( + feature = "intel-mkl-dynamic-parallel", + feature = "intel-mkl-dynamic-sequential", + feature = "intel-mkl-static-parallel", + feature = "intel-mkl-static-sequential", +))] extern crate intel_mkl_src as raw; #[cfg(feature = "netlib")]