I am pleased to announce the Lubeck [1] linear algebra library for Dlang.
It is very easy to use and it has been tested in real world.

See the dub project example [9] to start. libblas, libcblas, and liblapack should be installed and defined in user's DUB configuration. Alternatively, user can install and link OpenBLAS, Apple Accelerate, ATLAS, or Intel MKL libraries.

The following functionality is implemented:

1. `mtimes` - General matrix-matrix, row-matrix, matrix-column, and row-column multiplications.

2. `mldivide` - Solve systems of linear equations AX = B for X. Computes minimum-norm solution to a linear least squares problem
if A is not a square matrix.

3. `inv` - Inverse of matrix.

4. `svd` - Singular value decomposition.

5. `pca` - Principal component analysis of raw data.

6. `pinv` - Moore-Penrose pseudoinverse of matrix.

7. `det`/`detSymmetric` - General/symmetric matrix determinant.

8. `eigSymmetric` - Eigenvalues and eigenvectors of symmetric matrix.

The package depends on mir-blas, mir-lapack, and mir-algorithm.

The dependency structure is:

cblas         ->
                   > mir-blas   ->
mir-algorithm ->                     > Lubeck
                   > mir-lapack ->
lapack        ->

cblas [2] and lapack [3] are plain D headers for CBLAS and LAPACK.

mir-blas [4] and mir-lapack [5] are minimal generic betterC NDSlice[6] wrappers for BLAS and LAPACK.

This work has been sponsored by Symmetry Investments[7] and Kaleidic Associates[8].

[1] http://code.dlang.org/packages/lubeck
[2] http://code.dlang.org/packages/cblas
[3] http://code.dlang.org/packages/lapack
[4] http://code.dlang.org/packages/mir-blas
[5] http://code.dlang.org/packages/mir-lapack
[6] http://code.dlang.org/packages/mir-algorithm
[7] http://symmetryinvestments.com/
[8] https://github.com/kaleidicassociates
[9] https://github.com/kaleidicassociates/lubeck/tree/master/example

Best regards,

Reply via email to