Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Changelog

## Version 0.12.0 (September 23, 2025)

* `netlib-src` updated to version 0.9.0.

## Version 0.11.0 (February 8, 2025)

* `r-src` updated to version 0.2.1.
20 changes: 15 additions & 5 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]
name = "lapack-src"
version = "0.11.0"
edition = "2021"
version = "0.12.0"
edition = "2024"
license = "Apache-2.0 OR MIT"
authors = [
"Balasubramanian Narasimhan <b.naras@gmail.com>",
Expand All @@ -23,10 +23,18 @@ keywords = ["linear-algebra"]
changelog = "CHANGELOG.md"

[features]
# apple accelerate
accelerate = ["accelerate-src"]
intel-mkl = ["intel-mkl-src"]
# parallel LP64 version of MKL
intel-mkl = ["intel-mkl-src/mkl-static-lp64-iomp"]
# sequential LP64 version of MKL
intel-mkl-seq = ["intel-mkl-src/mkl-static-lp64-seq"]

# netlib
netlib = ["netlib-src"]
# openblas
openblas = ["openblas-src"]
# R
r = ["r-src"]

[dependencies.accelerate-src]
Expand All @@ -36,9 +44,11 @@ optional = true
[dependencies.intel-mkl-src]
version = "0.8"
optional = true
default-features = false


[dependencies.netlib-src]
version = "0.8"
version = "0.9"
optional = true

[dependencies.openblas-src]
Expand All @@ -47,4 +57,4 @@ optional = true

[dependencies.r-src]
version = "0.2.1"
optional = true
optional = true
17 changes: 12 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,20 @@ An implementation can be chosen as follows:

```toml
[dependencies]
lapack-src = { version = "0.11", features = ["accelerate"] }
lapack-src = { version = "0.11", features = ["intel-mkl"] }
lapack-src = { version = "0.11", features = ["netlib"] }
lapack-src = { version = "0.11", features = ["openblas"] }
lapack-src = { version = "0.11", features = ["r"] }
lapack-src = { version = "0.12", features = ["accelerate"] }
lapack-src = { version = "0.12", features = ["intel-mkl"] }
lapack-src = { version = "0.12", features = ["netlib"] }
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
Expand Down
21 changes: 15 additions & 6 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,21 @@
//!
//! ```toml
//! [dependencies]
//! lapack-src = { version = "0.11", features = ["accelerate"] }
//! lapack-src = { version = "0.11", features = ["intel-mkl"] }
//! lapack-src = { version = "0.11", features = ["netlib"] }
//! lapack-src = { version = "0.11", features = ["openblas"] }
//! lapack-src = { version = "0.11", features = ["r"] }
//! lapack-src = { version = "0.12", features = ["accelerate"] }
//! lapack-src = { version = "0.12", features = ["intel-mkl"] }
//! lapack-src = { version = "0.12", features = ["netlib"] }
//! lapack-src = { version = "0.12", features = ["openblas"] }
//! lapack-src = { version = "0.12", features = ["r"] }
//! ```
//! ### Configuring MKL
//!
//! When the `intel-mkl` feature is selected, then the parallel version of
//! MKL using OpenMP is _statically_ linked. To link the sequential version
//! use the `intel-mkl-seq` feature. In both cases, the
//! [LP64 interface](https://www.intel.com/content/www/us/en/docs/onemkl/developer-guide-linux/2023-0/using-the-ilp64-interface-vs-lp64-interface.html)
//! is linked. If other linkage options for MKL are desired, omit `lapack-src`
//! as a dependency and use the [`intel-mkl-src`](https://crates.io/crates/intel-mkl-src)
//! crate directly with the appropriate feature flags.
//!
//! [architecture]: https://blas-lapack-rs.github.io/architecture
//! [lapack]: https://en.wikipedia.org/wiki/LAPACK
Expand All @@ -37,7 +46,7 @@
#[cfg(feature = "accelerate")]
extern crate accelerate_src as raw;

#[cfg(feature = "intel-mkl")]
#[cfg(any(feature = "intel-mkl", feature = "intel-mkl-seq",))]
extern crate intel_mkl_src as raw;

#[cfg(feature = "netlib")]
Expand Down