Numo::Linalg : Linear Algebra library with BLAS/LAPACK binding to Numo::NArray
Under development!
Introduction
This is a binding of BLAS/LAPACK for Numo::NArray using dynamic linking loader. This design allows you to change backend libraries without re-compiling.
Numo::Linalg API
- Matrix and vector products
- dot, matmul
- Decomposition
- lu, lu_fact, lu_inv, lu_solve, ldl, cholesky, cho_fact, cho_inv, cho_solve, qr, svd, svdvals, orth, null_space
- Matrix eigenvalues
- eig, eigh, eigvals, eigvalsh
- Norms and other numbers
- norm, cond, det, slogdet, matrix_rank, matrix_power
- Solving equations and inverting matrices
- solve, lstsq, inv, pinv
Low-level modules
- Numo::Linalg::Blas - Low-level BLAS functions
- Numo::Linalg::Lapack - Low-level LAPACK functions
Installation
-
Install Numo::NArray
-
Install LAPACK or alternative package.
* Numo::Linalg requires C-interface [CBLAS](http://www.netlib.org/blas/#_cblas) and [LAPACKE](http://www.netlib.org/lapack/lapacke.html) interface. These are included in LAPACK package. * Recommended: use one of following faster libraries: * [ATLAS](https://sourceforge.net/projects/math-atlas/) * [OpenBLAS](http://www.openblas.net/) * [Intel MKL](https://software.intel.com/intel-mkl) * Note that the performance depends on the backend library as shown in [benchmark](https://github.com/ruby-numo/numo-linalg/tree/master/bench). -
Install Numo::Linalg
$ gem install numo-linalg
or
$ git clone https://github.com/ruby-numo/numo-linalg.git
$ cd linalg
$ rake build
$ gem install pkg/numo-linalg-*.gem
Using
- Load Numo::Linalg module with default backend:
require "numo/linalg"
- Read also instruction for Selecting Backend Library.
Authors
- Masahiro Tanaka
- Makoto Kishimoto
- Atsushi Tatsuma
Acknowledgments
- This work is partly supported by 2016 Ruby Association Grant.
ToDo
- More functions
- write test
- Documentation