@webml/linalg is a linear algebra library for the browser based on armadillo.
@webml/linalg uses Web Assembly to run armadillo code (in C++) in the browser.
Steps to install.
This library can be installed directly via npm:
npm install @webml/linalg
Basic usage.
import { Matrix } from "@webml/linalg";
async getMatrix() {
const A: Matrix<number> = new Matrix<number>({ n_rows: 2, n_cols: 2 }, "float");
await A.init();
return A;
}
const A = await getMatrix();
A.funcFill((i, j) => i + j); // fill matrix A.
const B = A.t(); // transpose of A.
console.log(A.toString());
console.log(B.toString());
Steps to build.
- Clone github repo.
git clone --recurse-submodules https://github.com/NippunSharma/webml-linalg
- Move to project dir.
cd webml-linalg
mkdir -p build
- Build clapack object files first.
make clapack
- Build
webml_linalg.wasm
binary along withwebml_linalg.js
.
make webml_linalg
- Now, generate the
dist
dir.
npm run build
Alternatively, you can directly execute npm run build
and it will
use the pre-existing binary file in resources/
. However, if anything
is changed in src/embind
, it is recommended to rebuild the binary.