From 1e4ee3e273cca2db20017aa47f6bd5dcc0704447 Mon Sep 17 00:00:00 2001 From: Toshiki Teramura Date: Sat, 6 Feb 2021 17:36:51 +0900 Subject: [PATCH 01/13] Add package.metadata.release section --- lax/Cargo.toml | 3 +++ ndarray-linalg/Cargo.toml | 3 +++ 2 files changed, 6 insertions(+) diff --git a/lax/Cargo.toml b/lax/Cargo.toml index c222d66f..b3eee4ed 100644 --- a/lax/Cargo.toml +++ b/lax/Cargo.toml @@ -42,3 +42,6 @@ version = "0.10.2" optional = true default-features = false features = ["cblas"] + +[package.metadata.release] +no-dev-version = true diff --git a/ndarray-linalg/Cargo.toml b/ndarray-linalg/Cargo.toml index f4b8e4d1..8afc1915 100644 --- a/ndarray-linalg/Cargo.toml +++ b/ndarray-linalg/Cargo.toml @@ -81,3 +81,6 @@ harness = false [package.metadata.docs.rs] rustdoc-args = ["--html-in-header", "katex-header.html"] + +[package.metadata.release] +no-dev-version = true From f764b9c49c2127c806358fade5b0d568b9acbe8d Mon Sep 17 00:00:00 2001 From: Toshiki Teramura Date: Sat, 6 Feb 2021 19:14:10 +0900 Subject: [PATCH 02/13] Add README for lax --- lax/README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 lax/README.md diff --git a/lax/README.md b/lax/README.md new file mode 100644 index 00000000..158e9b75 --- /dev/null +++ b/lax/README.md @@ -0,0 +1,20 @@ +Linear Algebra eXtension (LAX) +=============================== + +ndarray-free safe Rust wrapper for LAPACK FFI for implementing ndarray-linalg crate. +This crate responsibles for + +- Linking to LAPACK shared/static libraries +- Dispatching to LAPACK routines based on scalar types by using `Lapack` trait + +Features +--------- + +| Feature | Link type | Description | +|:-----------------|:---------------|:----------------------------------------| +| openblas-static | static | Build OpenBLAS, and link it statically | +| openblas-system | dynamic/static | Seek OpenBLAS in system (e.g. `/usr/lib/libopenblas.so`), and link it. Shared library (use dynamic linking) is prior to static library (`libopenblas.a`) | +| netlib-static | static | Same as openblas-static except for using reference LAPACK | +| netlib-system | dynamic/static | Same as openblas-system except for using reference LAPACK | +| intel-mkl-static | static | Seek static library of Intel MKL from system, or download if not found, and link it statically | +| intel-mkl-system | dynamic | Seek shared library of Intel MKL from system, and link it dynamically | From d00af3cecf7a984771175ee5b7f1471e78c90724 Mon Sep 17 00:00:00 2001 From: Toshiki Teramura Date: Sat, 6 Feb 2021 19:22:56 +0900 Subject: [PATCH 03/13] Update feature tables --- lax/README.md | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/lax/README.md b/lax/README.md index 158e9b75..77aad155 100644 --- a/lax/README.md +++ b/lax/README.md @@ -10,11 +10,14 @@ This crate responsibles for Features --------- -| Feature | Link type | Description | -|:-----------------|:---------------|:----------------------------------------| -| openblas-static | static | Build OpenBLAS, and link it statically | -| openblas-system | dynamic/static | Seek OpenBLAS in system (e.g. `/usr/lib/libopenblas.so`), and link it. Shared library (use dynamic linking) is prior to static library (`libopenblas.a`) | -| netlib-static | static | Same as openblas-static except for using reference LAPACK | -| netlib-system | dynamic/static | Same as openblas-system except for using reference LAPACK | -| intel-mkl-static | static | Seek static library of Intel MKL from system, or download if not found, and link it statically | -| intel-mkl-system | dynamic | Seek shared library of Intel MKL from system, and link it dynamically | +| Feature | Link type | Requirements | Description | +|:-----------------|:---------------|:--------------------|:----------------------------------------| +| openblas-static | static | gcc, gfortran, make | Build OpenBLAS, and link it statically | +| openblas-system | dynamic/static | - | Seek OpenBLAS in system (e.g. `/usr/lib/libopenblas.so`), and link it. Shared library (use dynamic linking) is prior to static library (`libopenblas.a`) | +| netlib-static | static | gfortran, make | Same as openblas-static except for using reference LAPACK | +| netlib-system | dynamic/static | - | Same as openblas-system except for using reference LAPACK | +| intel-mkl-static | static | (pkg-config) | Seek static library of Intel MKL from system, or download if not found, and link it statically | +| intel-mkl-system | dynamic | (pkg-config) | Seek shared library of Intel MKL from system, and link it dynamically | + +- You must use **just one** feature of them. +- `pkg-config` is used for searching Intel MKL packages in system, and it is optional. See [intel-mkl-src/README.md](https://github.com/rust-math/intel-mkl-src/blob/master/README.md#how-to-find-system-mkl-libraries) for detail. From 2bfa7cd2dd99f38328883cc581f83ad503982d53 Mon Sep 17 00:00:00 2001 From: Toshiki Teramura Date: Sat, 6 Feb 2021 19:29:03 +0900 Subject: [PATCH 04/13] Update table --- lax/README.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/lax/README.md b/lax/README.md index 77aad155..245e64b1 100644 --- a/lax/README.md +++ b/lax/README.md @@ -10,14 +10,15 @@ This crate responsibles for Features --------- -| Feature | Link type | Requirements | Description | -|:-----------------|:---------------|:--------------------|:----------------------------------------| -| openblas-static | static | gcc, gfortran, make | Build OpenBLAS, and link it statically | -| openblas-system | dynamic/static | - | Seek OpenBLAS in system (e.g. `/usr/lib/libopenblas.so`), and link it. Shared library (use dynamic linking) is prior to static library (`libopenblas.a`) | -| netlib-static | static | gfortran, make | Same as openblas-static except for using reference LAPACK | -| netlib-system | dynamic/static | - | Same as openblas-system except for using reference LAPACK | +| Feature | Link type | Requirements | Description | +|:-----------------|:---------------|:--------------------|:-----------------------------------------------------------------------------------------------| +| openblas-static | static | gcc, gfortran, make | Build OpenBLAS in your project, and link it statically | +| openblas-system | dynamic/static | - | Seek OpenBLAS in system, and link it | +| netlib-static | static | gfortran, make | Same as openblas-static except for using reference LAPACK | +| netlib-system | dynamic/static | - | Same as openblas-system except for using reference LAPACK | | intel-mkl-static | static | (pkg-config) | Seek static library of Intel MKL from system, or download if not found, and link it statically | -| intel-mkl-system | dynamic | (pkg-config) | Seek shared library of Intel MKL from system, and link it dynamically | +| intel-mkl-system | dynamic | (pkg-config) | Seek shared library of Intel MKL from system, and link it dynamically | - You must use **just one** feature of them. +- `dynamic/static` means it depends on what is found in the system. When the system has `/usr/lib/libopenblas.so`, it will be linked dynamically, and `/usr/lib/libopenblas.a` will be linked statically. Dynamic linking is prior to static linking. - `pkg-config` is used for searching Intel MKL packages in system, and it is optional. See [intel-mkl-src/README.md](https://github.com/rust-math/intel-mkl-src/blob/master/README.md#how-to-find-system-mkl-libraries) for detail. From 12e5e02b6393002ebbcd48da981b7a3b9d5b7994 Mon Sep 17 00:00:00 2001 From: Toshiki Teramura Date: Sat, 6 Feb 2021 19:50:38 +0900 Subject: [PATCH 05/13] Move table to top README --- README.md | 70 ++++++++++++++++++++++++++------------------------- lax/README.md | 15 ----------- 2 files changed, 36 insertions(+), 49 deletions(-) diff --git a/README.md b/README.md index d9fba45e..99b52297 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ ndarray-linalg [![Crate](http://meritbadge.herokuapp.com/ndarray-linalg)](https://crates.io/crates/ndarray-linalg) [![docs.rs](https://docs.rs/ndarray-linalg/badge.svg)](https://docs.rs/ndarray-linalg) -Linear algebra package for Rust with [ndarray](https://github.com/bluss/ndarray) based on external LAPACK implementations. +Linear algebra package for Rust with [ndarray](https://github.com/rust-ndarray/ndarray) based on external LAPACK implementations. Examples --------- @@ -22,34 +22,40 @@ and run all tests of ndarray-linalg with OpenBLAS cargo test --features=openblas ``` -BLAS/LAPACK Backend -------------------- +Backend Features +----------------- -Three BLAS/LAPACK implementations are supported: +There are three LAPACK source crates: -- [OpenBLAS](https://github.com/cmr/openblas-src) - - needs `gfortran` (or other Fortran compiler) -- [Netlib](https://github.com/cmr/netlib-src) - - needs `cmake` and `gfortran` -- [Intel MKL](https://github.com/termoshtt/rust-intel-mkl) (non-free license, see the linked page) +- [openblas-src](https://github.com/blas-lapack-rs/openblas-src) +- [netlib-src](https://github.com/blas-lapack-rs/netlib-src) +- [intel-mkl-src](https://github.com/rust-math/rust-intel-mkl) -There are three features corresponding to the backend implementations (`openblas` / `netlib` / `intel-mkl`): +`ndarray_linalg` must link **just one** of them for LAPACK FFI. ```toml [dependencies] -ndarray = "0.13" -ndarray-linalg = { version = "0.12", features = ["openblas"] } +ndarray = "0.14" +ndarray-linalg = { version = "0.13", features = ["openblas-static"] } ``` -### Tested Environments +Supported features are following: -|Backend | Linux | Windows | macOS | -|:--------|:-----:|:-------:|:-----:| -|OpenBLAS |✔️ |- |- | -|Netlib |✔️ |- |- | -|Intel MKL|✔️ |✔️ |✔️ | +| Feature | Link type | Requirements | Description | +|:-----------------|:---------------|:--------------------|:-----------------------------------------------------------------------------------------------| +| openblas-static | static | gcc, gfortran, make | Build OpenBLAS in your project, and link it statically | +| openblas-system | dynamic/static | - | Seek OpenBLAS in system, and link it | +| netlib-static | static | gfortran, make | Same as openblas-static except for using reference LAPACK | +| netlib-system | dynamic/static | - | Same as openblas-system except for using reference LAPACK | +| intel-mkl-static | static | (pkg-config) | Seek static library of Intel MKL from system, or download if not found, and link it statically | +| intel-mkl-system | dynamic | (pkg-config) | Seek shared library of Intel MKL from system, and link it dynamically | + +- You must use **just one** feature of them. +- `dynamic/static` means it depends on what is found in the system. When the system has `/usr/lib/libopenblas.so`, it will be linked dynamically, and `/usr/lib/libopenblas.a` will be linked statically. Dynamic linking is prior to static linking. +- `pkg-config` is used for searching Intel MKL packages in system, and it is optional. See [intel-mkl-src/README.md](https://github.com/rust-math/intel-mkl-src/blob/master/README.md#how-to-find-system-mkl-libraries) for detail. + +### For library developer -### For librarian If you creating a library depending on this crate, we encourage you not to link any backend: ```toml @@ -58,25 +64,21 @@ ndarray = "0.13" ndarray-linalg = "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. +The cargo's feature is additive. If your library (saying `lib1`) set a feature `openblas-static`, +the application using `lib1` builds ndarray_linalg with `openblas-static` feature though they want to use `intel-mkl-static` backend. -```toml -[dependencies] -ndarray = "0.13" -ndarray-linalg = "0.12" -openblas-src = "0.7" # or another backend of your choice +See [the cargo reference](https://doc.rust-lang.org/cargo/reference/features.html) for detail -``` +Tested Environments +-------------------- -You must add `extern crate` to your code in this case: +Only x86_64 system is supported currently. -```rust -extern crate ndarray; -extern crate ndarray_linalg; -extern crate openblas_src; // or another backend of your choice -``` +|Backend | Linux | Windows | macOS | +|:--------|:-----:|:-------:|:-----:| +|OpenBLAS |✔️ |- |- | +|Netlib |✔️ |- |- | +|Intel MKL|✔️ |✔️ |✔️ | Generate document with KaTeX ------------------------------ diff --git a/lax/README.md b/lax/README.md index 245e64b1..fb560826 100644 --- a/lax/README.md +++ b/lax/README.md @@ -7,18 +7,3 @@ This crate responsibles for - Linking to LAPACK shared/static libraries - Dispatching to LAPACK routines based on scalar types by using `Lapack` trait -Features ---------- - -| Feature | Link type | Requirements | Description | -|:-----------------|:---------------|:--------------------|:-----------------------------------------------------------------------------------------------| -| openblas-static | static | gcc, gfortran, make | Build OpenBLAS in your project, and link it statically | -| openblas-system | dynamic/static | - | Seek OpenBLAS in system, and link it | -| netlib-static | static | gfortran, make | Same as openblas-static except for using reference LAPACK | -| netlib-system | dynamic/static | - | Same as openblas-system except for using reference LAPACK | -| intel-mkl-static | static | (pkg-config) | Seek static library of Intel MKL from system, or download if not found, and link it statically | -| intel-mkl-system | dynamic | (pkg-config) | Seek shared library of Intel MKL from system, and link it dynamically | - -- You must use **just one** feature of them. -- `dynamic/static` means it depends on what is found in the system. When the system has `/usr/lib/libopenblas.so`, it will be linked dynamically, and `/usr/lib/libopenblas.a` will be linked statically. Dynamic linking is prior to static linking. -- `pkg-config` is used for searching Intel MKL packages in system, and it is optional. See [intel-mkl-src/README.md](https://github.com/rust-math/intel-mkl-src/blob/master/README.md#how-to-find-system-mkl-libraries) for detail. From 797c3c5172252e3d6a4ab7abdade744d473cb995 Mon Sep 17 00:00:00 2001 From: Toshiki Teramura Date: Sat, 13 Feb 2021 15:58:44 +0900 Subject: [PATCH 06/13] Add libopenblas-dev in Requirements --- README.md | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 99b52297..f6dc0f97 100644 --- a/README.md +++ b/README.md @@ -44,15 +44,20 @@ Supported features are following: | Feature | Link type | Requirements | Description | |:-----------------|:---------------|:--------------------|:-----------------------------------------------------------------------------------------------| | openblas-static | static | gcc, gfortran, make | Build OpenBLAS in your project, and link it statically | -| openblas-system | dynamic/static | - | Seek OpenBLAS in system, and link it | +| openblas-system | dynamic/static | libopenblas-dev | Seek OpenBLAS in system, and link it | | netlib-static | static | gfortran, make | Same as openblas-static except for using reference LAPACK | -| netlib-system | dynamic/static | - | Same as openblas-system except for using reference LAPACK | +| netlib-system | dynamic/static | liblapack-dev | Same as openblas-system except for using reference LAPACK | | intel-mkl-static | static | (pkg-config) | Seek static library of Intel MKL from system, or download if not found, and link it statically | | intel-mkl-system | dynamic | (pkg-config) | Seek shared library of Intel MKL from system, and link it dynamically | - You must use **just one** feature of them. - `dynamic/static` means it depends on what is found in the system. When the system has `/usr/lib/libopenblas.so`, it will be linked dynamically, and `/usr/lib/libopenblas.a` will be linked statically. Dynamic linking is prior to static linking. -- `pkg-config` is used for searching Intel MKL packages in system, and it is optional. See [intel-mkl-src/README.md](https://github.com/rust-math/intel-mkl-src/blob/master/README.md#how-to-find-system-mkl-libraries) for detail. +- Requirements notices: + - `gcc` and `gfortran` can be another compiler, e.g. `icc` and `ifort`. + - `libopenblas-dev` is package name in Debian, Ubuntu, and other derived distributions. + There are several binary packages of OpenBLAS, i.e. `libopenblas-{openmp,pthread,serial}-dev`. + It can be other names in other distributions, e.g. Fedora, ArchLinux, and so on. + - `pkg-config` is used for searching Intel MKL packages in system, and it is optional. See [intel-mkl-src/README.md](https://github.com/rust-math/intel-mkl-src/blob/master/README.md#how-to-find-system-mkl-libraries) for detail. ### For library developer From 2359185c9037a3aa1d20bff97c323ef88bec2610 Mon Sep 17 00:00:00 2001 From: Toshiki Teramura Date: Sat, 13 Feb 2021 16:48:38 +0900 Subject: [PATCH 07/13] lapack 0.17.0, cargo upgrade --- lax/Cargo.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lax/Cargo.toml b/lax/Cargo.toml index b3eee4ed..f4447956 100644 --- a/lax/Cargo.toml +++ b/lax/Cargo.toml @@ -21,10 +21,10 @@ intel-mkl-static = ["intel-mkl-src/mkl-static-lp64-seq", "intel-mkl-src/download intel-mkl-system = ["intel-mkl-src/mkl-dynamic-lp64-seq"] [dependencies] -thiserror = "1.0" +thiserror = "1.0.23" cauchy = "0.3.0" -num-traits = "0.2" -lapack = { version = "0.17.0", git = "http://github.com/blas-lapack-rs/lapack" } +num-traits = "0.2.14" +lapack = "0.17.0" [dependencies.intel-mkl-src] version = "0.6.0" From 9daf03a3a414ff85e54c0ac7c964a196e75ded7e Mon Sep 17 00:00:00 2001 From: Toshiki Teramura Date: Sat, 13 Feb 2021 17:26:57 +0900 Subject: [PATCH 08/13] Change to MIT OR Apache-2.0 --- LICENSE | 21 ----------------- LICENSE.md | 49 +++++++++++++++++++++++++++++++++++++++ README.md | 10 ++++++++ lax/Cargo.toml | 8 +++++++ lax/README.md | 1 - ndarray-linalg/Cargo.toml | 4 ++-- 6 files changed, 69 insertions(+), 24 deletions(-) delete mode 100644 LICENSE create mode 100644 LICENSE.md diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 793cc93b..00000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2016 Toshiki Teramura - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 00000000..55150e4b --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,49 @@ +# License + +The project is dual licensed under the terms of the Apache License, Version 2.0, +and the MIT License. You may obtain copies of the two licenses at + +* https://www.apache.org/licenses/LICENSE-2.0 and +* https://opensource.org/licenses/MIT, respectively. + +The following two notices apply to every file of the project. + +## The Apache License + +``` +Copyright 2016 The ndarray-linalg Developers + +Licensed under the Apache License, Version 2.0 (the “License”); you may not use +this file except in compliance with the License. You may obtain a copy of the +License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software distributed +under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR +CONDITIONS OF ANY KIND, either express or implied. See the License for the +specific language governing permissions and limitations under the License. +``` + +## The MIT License + +``` +Copyright 2016 The ndarray-linalg Developers + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +``` diff --git a/README.md b/README.md index f6dc0f97..4478dca3 100644 --- a/README.md +++ b/README.md @@ -103,3 +103,13 @@ rustdocflags = ["--html-in-header", "katex-header.html"] ``` But, be sure that this works only for `--no-deps`. `cargo doc` will fail with this `.cargo/config`. + +License +-------- + +**CAUTION** Be sure that if you use `intel-mkl-src` backend, you have to accept [Intel Simplified Software License](https://software.intel.com/content/www/us/en/develop/articles/end-user-license-agreement.html) +in addition to the MIT-License or Apache-2.0 License. + +Dual-licensed to be compatible with the Rust project. +Licensed under the Apache License, Version 2.0 http://www.apache.org/licenses/LICENSE-2.0 or the MIT license http://opensource.org/licenses/MIT, at your option. + diff --git a/lax/Cargo.toml b/lax/Cargo.toml index f4447956..812ad126 100644 --- a/lax/Cargo.toml +++ b/lax/Cargo.toml @@ -4,6 +4,14 @@ version = "0.1.0" authors = ["Toshiki Teramura "] edition = "2018" +description = "LAPACK wrapper without ndarray" +documentation = "https://docs.rs/lax/" +repository = "https://github.com/rust-ndarray/ndarray-linalg" +keywords = ["lapack", "matrix"] +license = "MIT OR Apache-2.0" +readme = "README.md" +categories = ["algorithms", "science"] + [features] default = [] diff --git a/lax/README.md b/lax/README.md index fb560826..ed563735 100644 --- a/lax/README.md +++ b/lax/README.md @@ -6,4 +6,3 @@ This crate responsibles for - Linking to LAPACK shared/static libraries - Dispatching to LAPACK routines based on scalar types by using `Lapack` trait - diff --git a/ndarray-linalg/Cargo.toml b/ndarray-linalg/Cargo.toml index 8afc1915..960bf51f 100644 --- a/ndarray-linalg/Cargo.toml +++ b/ndarray-linalg/Cargo.toml @@ -8,8 +8,8 @@ description = "Linear algebra package for rust-ndarray using LAPACK" documentation = "https://docs.rs/ndarray-linalg/" repository = "https://github.com/rust-ndarray/ndarray-linalg" keywords = ["ndarray", "lapack", "matrix"] -license = "MIT" -readme = "README.md" +license = "MIT OR Apache-2.0" +readme = "../README.md" categories = ["algorithms", "science"] [features] From 3482e4a6761040d8ce19f529a51e6745a23edea3 Mon Sep 17 00:00:00 2001 From: Toshiki Teramura Date: Sat, 13 Feb 2021 18:14:52 +0900 Subject: [PATCH 09/13] Split dependencies updates --- CHANGELOG.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c438fff1..b5924e95 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,18 @@ Added - Split out `ndarray_linalg::lapack` as "lax" crate https://github.com/rust-ndarray/ndarray-linalg/pull/207 - cargo-workspace https://github.com/rust-ndarray/ndarray-linalg/pull/209 +Updated dependencies +--------------------- +- ndarray 0.14 https://github.com/rust-ndarray/ndarray-linalg/pull/258 +- cauchy 0.3.0 https://github.com/rust-ndarray/ndarray-linalg/pull/260 + - num-complex 0.3.1 + - rand 0.7.3 + +### optional dependencies + +- openblas-src 0.10.2 https://github.com/rust-ndarray/ndarray-linalg/pull/253 +- intel-mkl-src 0.6.0 https://github.com/rust-ndarray/ndarray-linalg/pull/204 + Changed -------- - Revise tests for least-square problem https://github.com/rust-ndarray/ndarray-linalg/pull/227 From 3dcced6fe324c007d6a17d13e47e26c798db75d2 Mon Sep 17 00:00:00 2001 From: Toshiki Teramura Date: Sat, 13 Feb 2021 23:50:13 +0900 Subject: [PATCH 10/13] Add lapack update notice --- CHANGELOG.md | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b5924e95..6d33529d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,23 +3,21 @@ Unreleased (will be 0.13.0) https://github.com/rust-ndarray/ndarray-linalg/milestone/5 -Added ------- -- Split out `ndarray_linalg::lapack` as "lax" crate https://github.com/rust-ndarray/ndarray-linalg/pull/207 - - cargo-workspace https://github.com/rust-ndarray/ndarray-linalg/pull/209 - Updated dependencies --------------------- - ndarray 0.14 https://github.com/rust-ndarray/ndarray-linalg/pull/258 -- cauchy 0.3.0 https://github.com/rust-ndarray/ndarray-linalg/pull/260 - - num-complex 0.3.1 - - rand 0.7.3 +- cauchy 0.3.0 (num-complex 0.3.1, rand 0.7.3), lapack 0.17.0 https://github.com/rust-ndarray/ndarray-linalg/pull/260 ### optional dependencies - openblas-src 0.10.2 https://github.com/rust-ndarray/ndarray-linalg/pull/253 - intel-mkl-src 0.6.0 https://github.com/rust-ndarray/ndarray-linalg/pull/204 +Added +------ +- Split out `ndarray_linalg::lapack` as "lax" crate https://github.com/rust-ndarray/ndarray-linalg/pull/207 + - cargo-workspace https://github.com/rust-ndarray/ndarray-linalg/pull/209 + Changed -------- - Revise tests for least-square problem https://github.com/rust-ndarray/ndarray-linalg/pull/227 From 1914c0160a387ab3c538b2dd5107205ade969f16 Mon Sep 17 00:00:00 2001 From: Toshiki Teramura Date: Sat, 20 Feb 2021 18:18:20 +0900 Subject: [PATCH 11/13] 0.13.0 release in CHANGELOG --- CHANGELOG.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d33529d..5f47dd09 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ -Unreleased (will be 0.13.0) -========================== +Unreleased +----------- + +0.13.0 - 20 Feb 2021 +===================== https://github.com/rust-ndarray/ndarray-linalg/milestone/5 From 073727a6342382a1580e40ab4b444bb9d730a783 Mon Sep 17 00:00:00 2001 From: Toshiki Teramura Date: Sat, 20 Feb 2021 18:28:50 +0900 Subject: [PATCH 12/13] Cleanup --- CHANGELOG.md | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f47dd09..d15ccf81 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,28 +23,31 @@ Added Changed -------- +- Dual license, MIT or Apache-2.0 License https://github.com/rust-ndarray/ndarray-linalg/pull/262 - Revise tests for least-square problem https://github.com/rust-ndarray/ndarray-linalg/pull/227 -- New features for static linking https://github.com/rust-ndarray/ndarray-linalg/pull/204 - - intel-mkl-src 0.6.0+mkl2020.1 -- Drop LAPACKE dependence https://github.com/rust-ndarray/ndarray-linalg/pull/206 - - Cholesky https://github.com/rust-ndarray/ndarray-linalg/pull/225 - - Eigenvalue for general matrix https://github.com/rust-ndarray/ndarray-linalg/pull/212 - - Eigenvalue for symmetric/Hermitian matrix https://github.com/rust-ndarray/ndarray-linalg/pull/217 - - least squares problem https://github.com/rust-ndarray/ndarray-linalg/pull/220 - - QR decomposition https://github.com/rust-ndarray/ndarray-linalg/pull/224 - - LU decomposition https://github.com/rust-ndarray/ndarray-linalg/pull/213 - - LDL decomposition https://github.com/rust-ndarray/ndarray-linalg/pull/216 - - SVD https://github.com/rust-ndarray/ndarray-linalg/pull/218 - - SVD divid-and-conquer https://github.com/rust-ndarray/ndarray-linalg/pull/219 - - Tridiagonal https://github.com/rust-ndarray/ndarray-linalg/pull/235 -- Named struct for `MatrixLayout` https://github.com/rust-ndarray/ndarray-linalg/pull/211 +- Support static link to LAPACK backend https://github.com/rust-ndarray/ndarray-linalg/pull/204 +- Drop LAPACKE dependence, and rewrite them in Rust (see below) https://github.com/rust-ndarray/ndarray-linalg/pull/206 +- Named record like `C { row: i32, lda: i32 }` instead of enum for `MatrixLayout` https://github.com/rust-ndarray/ndarray-linalg/pull/211 - Split LAPACK error into computational failure and invalid values https://github.com/rust-ndarray/ndarray-linalg/pull/210 - Use thiserror crate https://github.com/rust-ndarray/ndarray-linalg/pull/208 -- Fix for clippy, and add CI check https://github.com/rust-ndarray/ndarray-linalg/pull/205 + +### LAPACKE rewrite + +- Cholesky https://github.com/rust-ndarray/ndarray-linalg/pull/225 +- Eigenvalue for general matrix https://github.com/rust-ndarray/ndarray-linalg/pull/212 +- Eigenvalue for symmetric/Hermitian matrix https://github.com/rust-ndarray/ndarray-linalg/pull/217 +- least squares problem https://github.com/rust-ndarray/ndarray-linalg/pull/220 +- QR decomposition https://github.com/rust-ndarray/ndarray-linalg/pull/224 +- LU decomposition https://github.com/rust-ndarray/ndarray-linalg/pull/213 +- LDL decomposition https://github.com/rust-ndarray/ndarray-linalg/pull/216 +- SVD https://github.com/rust-ndarray/ndarray-linalg/pull/218 +- SVD divid-and-conquer https://github.com/rust-ndarray/ndarray-linalg/pull/219 +- Tridiagonal https://github.com/rust-ndarray/ndarray-linalg/pull/235 Maintenance ----------- - Coverage report using codecov https://github.com/rust-ndarray/ndarray-linalg/pull/215 +- Fix for clippy, and add CI check https://github.com/rust-ndarray/ndarray-linalg/pull/205 0.12.1 - 28 June 2020 ====================== From f17918c9ce0e8687339c0e7fcccf95b580e6f499 Mon Sep 17 00:00:00 2001 From: Toshiki Teramura Date: Sat, 20 Feb 2021 23:40:09 +0900 Subject: [PATCH 13/13] (cargo-release) version 0.13.0 --- ndarray-linalg/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ndarray-linalg/Cargo.toml b/ndarray-linalg/Cargo.toml index 960bf51f..63fa3e86 100644 --- a/ndarray-linalg/Cargo.toml +++ b/ndarray-linalg/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ndarray-linalg" -version = "0.13.0-alpha.0" +version = "0.13.0" authors = ["Toshiki Teramura "] edition = "2018"