# Rust Linear Solver Toolbox
The Rust Linear Solver toolbox is an in-development project for
dense and sparse linear algebra routines in Rust.
## LICENSE
This work is dual-licensed under the Apache 2.0 and MIT license.
You can choose between one of them if you use this work.
`SPDX-License-Identifier: (Apache-2.0 OR MIT)`
Some optional dependencies of the library have different licenses that
may change the license of compiled library components.
Note that when linking against FFTW (either by the flag `fftw_system` or
the flag `fftw_source`) the GPL license of FFTW needs to be adhered to.
## System FFTW
Enable `fftw,fftw_system` to use an installed FFTW library. Both double- and
single-precision libraries (`fftw3` and `fftw3f`) are required.
- macOS (Homebrew): `brew install fftw pkg-config`
- Debian/Ubuntu: `sudo apt install libfftw3-dev pkg-config`
- Fedora: `sudo dnf install fftw-devel pkgconf-pkg-config`
The build uses `pkg-config` to discover library paths, with a fallback to
standard native Homebrew FFTW locations on macOS. For custom installations,
set `PKG_CONFIG_PATH` to the directory containing `fftw3.pc` and `fftw3f.pc`.
Cross-compilation requires target libraries and the corresponding `pkg-config`
configuration; host Homebrew paths are not used as a fallback.
This discovery does not affect the `fftw_source` or `fftw_mkl` backends.
## Notes
This library is the result of the merger of two experimental linear algebra projects
- Householder (github.com/UCL-ARC/householder)
- sandbox (github.com/linalg-rs/sandbox)
Both projects are MIT + Apache-2.0 dual licensed. The Rust Linear Solver
toolbox is the successor of both projects.