{"id":14992097,"url":"https://github.com/rust-ndarray/ndarray-linalg","last_synced_at":"2025-05-14T07:08:30.940Z","repository":{"id":46823133,"uuid":"69845552","full_name":"rust-ndarray/ndarray-linalg","owner":"rust-ndarray","description":"Linear algebra package for rust-ndarray using LAPACK binding","archived":false,"fork":false,"pushed_at":"2025-04-21T06:05:00.000Z","size":5734,"stargazers_count":413,"open_issues_count":80,"forks_count":83,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-05-14T00:46:24.225Z","etag":null,"topics":["lapack","linear-algebra","rust-ndarray"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rust-ndarray.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-10-03T06:15:57.000Z","updated_at":"2025-05-08T18:06:40.000Z","dependencies_parsed_at":"2023-02-16T00:01:05.461Z","dependency_job_id":"2a88a148-ea1d-410a-b6df-e7ae0a057793","html_url":"https://github.com/rust-ndarray/ndarray-linalg","commit_stats":{"total_commits":1135,"total_committers":24,"mean_commits":"47.291666666666664","dds":"0.12070484581497798","last_synced_commit":"fb1b6d6779ad644b9f4c7c5a0b145d0c7237991f"},"previous_names":[],"tags_count":49,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-ndarray%2Fndarray-linalg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-ndarray%2Fndarray-linalg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-ndarray%2Fndarray-linalg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-ndarray%2Fndarray-linalg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rust-ndarray","download_url":"https://codeload.github.com/rust-ndarray/ndarray-linalg/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254092775,"owners_count":22013290,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["lapack","linear-algebra","rust-ndarray"],"created_at":"2024-09-24T15:00:43.886Z","updated_at":"2025-05-14T07:08:30.907Z","avatar_url":"https://github.com/rust-ndarray.png","language":"Rust","funding_links":[],"categories":["Scientific Computation"],"sub_categories":[],"readme":"ndarray-linalg\n===============\n[![crate](https://img.shields.io/crates/v/ndarray-linalg.svg)](https://crates.io/crates/ndarray-linalg) \n[![docs.rs](https://docs.rs/ndarray-linalg/badge.svg)](https://docs.rs/ndarray-linalg)\n[![master](https://img.shields.io/badge/docs-master-blue)](https://rust-ndarray.github.io/ndarray-linalg/ndarray_linalg/index.html)\n\nLinear algebra package for Rust with [ndarray](https://github.com/rust-ndarray/ndarray) based on external LAPACK implementations.\n\nExamples\n---------\nSee [examples](https://github.com/termoshtt/ndarray-linalg/tree/master/ndarray-linalg/examples) directory.\n\n**Note**: To run examples, you must specify which backend will be used (as described below).\nFor example, you can execute the [solve](ndarray-linalg/examples/solve.rs) example with the OpenBLAS backend like this:\n\n```sh\ncargo run --example solve --features=openblas\n```\n\nand run all tests of ndarray-linalg with OpenBLAS\n\n```sh\ncargo test --features=openblas\n```\n\nBackend Features\n-----------------\n\nThere are three LAPACK source crates:\n\n- [openblas-src](https://github.com/blas-lapack-rs/openblas-src)\n- [netlib-src](https://github.com/blas-lapack-rs/netlib-src)\n- [intel-mkl-src](https://github.com/rust-math/rust-intel-mkl)\n\n`ndarray_linalg` must link **just one** of them for LAPACK FFI.\n\n```toml\n[dependencies]\nndarray = \"0.14\"\nndarray-linalg = { version = \"0.13\", features = [\"openblas-static\"] }\n```\n\nSupported features are following:\n\n| Feature          | Link type      | Requirements        | Description                                                                                    |\n|:-----------------|:---------------|:--------------------|:-----------------------------------------------------------------------------------------------|\n| openblas-static  | static         | gcc, gfortran, make | Build OpenBLAS in your project, and link it statically                                         |\n| openblas-system  | dynamic/static | libopenblas-dev     | Seek OpenBLAS in system, and link it                                                           |\n| netlib-static    | static         | gfortran, make      | Same as openblas-static except for using reference LAPACK                                      |\n| netlib-system    | dynamic/static | liblapack-dev       | Same as openblas-system except for using reference LAPACK                                      |\n| intel-mkl-static | static         | (pkg-config)        | Seek static library of Intel MKL from system, or download if not found, and link it statically |\n| intel-mkl-system | dynamic        | (pkg-config)        | Seek shared library of Intel MKL from system, and link it dynamically                          |\n\n- You must use **just one** feature of them.\n- `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.\n- Requirements notices:\n  - `gcc` and `gfortran` can be another compiler, e.g. `icc` and `ifort`.\n  - `libopenblas-dev` is package name in Debian, Ubuntu, and other derived distributions.\n    There are several binary packages of OpenBLAS, i.e. `libopenblas-{openmp,pthread,serial}-dev`.\n    It can be other names in other distributions, e.g. Fedora, ArchLinux, and so on.\n  - `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.\n\n### For library developer\n\nIf you creating a library depending on this crate, we encourage you not to link any backend:\n\n```toml\n[dependencies]\nndarray = \"0.13\"\nndarray-linalg = \"0.12\"\n```\n\nThe cargo's feature is additive. If your library (saying `lib1`) set a feature `openblas-static`,\nthe application using `lib1` builds ndarray_linalg with `openblas-static` feature though they want to use `intel-mkl-static` backend.\n\nSee [the cargo reference](https://doc.rust-lang.org/cargo/reference/features.html) for detail\n\nTested Environments\n--------------------\n\nOnly x86_64 system is supported currently.\n\n|Backend  | Linux | Windows | macOS |\n|:--------|:-----:|:-------:|:-----:|\n|OpenBLAS |✔️      |-        |-      |\n|Netlib   |✔️      |-        |-      |\n|Intel MKL|✔️      |✔️        |✔️      |\n\nLicense\n--------\n\n**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)\nin addition to the MIT-License or Apache-2.0 License.\n\nDual-licensed to be compatible with the Rust project.\nLicensed 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.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frust-ndarray%2Fndarray-linalg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frust-ndarray%2Fndarray-linalg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frust-ndarray%2Fndarray-linalg/lists"}