## digitalmars.D.announce - Lubeck: Hight Level Linear Algebra for Dlang

- 9il (47/47) Jun 13 Hi
- =?UTF-8?B?Tm9yZGzDtnc=?= (4/6) Jun 15 Nice.
- =?UTF-8?B?Tm9yZGzDtnc=?= (4/10) Jun 15 I'm guessing such a solution is not generic enough partly because
- jmh530 (8/20) Jun 15 mir.ndslice.slice has CanonicalMatrix/ContinguousMatrix, and
- =?UTF-8?B?Tm9yZGzDtnc=?= (2/10) Jun 15 Thanks.
- data pulverizer (4/26) Jun 17 This is great news! as I said in a previous discussion

Hi 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, Ilya

Jun 13

On Tuesday, 13 June 2017 at 08:26:20 UTC, 9il wrote:[1] http://code.dlang.org/packages/lubeck https://github.com/kaleidicassociates/lubeck/tree/master/exampleNice. Will there be any matrix, vector, scalar, types with operator overloads?

Jun 15

On Thursday, 15 June 2017 at 12:22:25 UTC, Nordlöw wrote:On Tuesday, 13 June 2017 at 08:26:20 UTC, 9il wrote:I'm guessing such a solution is not generic enough partly because D cannot define non-member operator overloads and partly because the algorithms operates on ranges.[1] http://code.dlang.org/packages/lubeck https://github.com/kaleidicassociates/lubeck/tree/master/exampleNice. Will there be any matrix, vector, scalar, types with operator overloads?

Jun 15

On Thursday, 15 June 2017 at 13:44:33 UTC, Nordlöw wrote:On Thursday, 15 June 2017 at 12:22:25 UTC, Nordlöw wrote:mir.ndslice.slice has CanonicalMatrix/ContinguousMatrix, and similar versions for vectors and tensors and all the algorithms that operate on ranges in mir seem to work fine with them. Ilya has expressed his intention in the past for higher level abstractions on mir, including operator overloading. I brought up the operator overloading issue on the gradient descent thread: https://forum.dlang.org/post/ohjsuphzuapaxktgwfsp forum.dlang.orgOn Tuesday, 13 June 2017 at 08:26:20 UTC, 9il wrote:I'm guessing such a solution is not generic enough partly because D cannot define non-member operator overloads and partly because the algorithms operates on ranges.[1] http://code.dlang.org/packages/lubeck https://github.com/kaleidicassociates/lubeck/tree/master/exampleNice. Will there be any matrix, vector, scalar, types with operator overloads?

Jun 15

On Thursday, 15 June 2017 at 14:23:29 UTC, jmh530 wrote:mir.ndslice.slice has CanonicalMatrix/ContinguousMatrix, and similar versions for vectors and tensors and all the algorithms that operate on ranges in mir seem to work fine with them. Ilya has expressed his intention in the past for higher level abstractions on mir, including operator overloading. I brought up the operator overloading issue on the gradient descent thread: https://forum.dlang.org/post/ohjsuphzuapaxktgwfsp forum.dlang.orgThanks.

Jun 15

On Tuesday, 13 June 2017 at 08:26:20 UTC, 9il wrote:Hi 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. 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.This work has been sponsored by Symmetry Investments[7] and Kaleidic Associates[8]. Best regards, IlyaThis is great news! as I said in a previous discussion (https://forum.dlang.org/post/nrbcrpnvcrlqvpqholuv forum.dlang.org) a library like this is pretty important for numerical computing in D and together with Mir can form the basis of implementing algorithms for a myriad of applications in analysis. Many thanks to all those involved!

Jun 17