A high performance linear algebra library.
npm install vectorious

A linear algebra library, written in TypeScript and accelerated with C++ bindings to BLAS and LAPACK.
Follow the installation instructions in nlapack and nblas to get maximum performance.
``bashwith C++ bindings
$ npm install vectorious
There are three output bundles exposed in this package.
#### CommonJS
A node.js bundle, can be found in
dist/index.js and imported with the require() syntax:`typescript
const v = require('vectorious');
`#### Browser
A browser bundle, can be found in
dist/index.browser.js and imported with the #### ES module
Added in version 6.1.0, vectorious exposes an ES module bundle at
dist/index.mjs which can be imported using the import syntax:`typescript
import { array } from 'vectorious';const x = array([1, 2, 3]);
`$3
Unless stated otherwise, all operations are in-place, meaning that the result of the operation overwrites data in the current (or in the static case leftmost) array. To avoid this, an explicit
copy call is needed before the operation (copy(x) or x.copy()).`javascript
import { array, random, range } from 'vectorious';// Create a random 2x2 matrix
const x = random(2, 2);
/*
array([
[
0.26472008228302,
0.4102575480937958
],
[
0.4068726599216461,
0.4589384198188782
]
], dtype=float64)
*/
// Create a one-dimensional vector with values from
// 0 through 8 and reshape it into a 3x3 matrix
const y = range(0, 9).reshape(3, 3);
/*
array([
[ 0, 1, 2 ],
[ 3, 4, 5 ],
[ 6, 7, 8 ]
], dtype=float64)
*/
// Add the second row of x to the first row of x
y.slice(0, 1).add(y.slice(1, 2));
/*
array([
[ 3, 5, 7 ],
[ 3, 4, 5 ],
[ 6, 7, 8 ]
], dtype=float64)
*/
// Swap the first and second rows of x
y.swap(0, 1);
/*
array([
[ 3, 4, 5 ],
[ 3, 5, 7 ],
[ 6, 7, 8 ]
], dtype=float64)
*/
// Create a 2x2x1 tensor
const z = array([
[[1], [2]],
[[3], [4]],
]);
/*
array([
[ [ 1 ], [ 2 ] ],
[ [ 3 ], [ 4 ] ]
], dtype=float64)
*/
`$3
$3
Basic
- Solving linear systems of equations
- Using low-level BLAS routines
Machine learning
- Neural network (by @lucidrains)
- Logistic regression
$3
All functions are accompanied with a
.spec.ts file.The Jest testing framework is used for testing and the whole test suite can be run using a single command:
`sh
$ npm test
`$3
All functions are accompanied with a
.bench.ts file.Run all benchmarks with:
`bash
$ npm run benchmark
`Or for a single function with:
`
$ npx ts-node src/core/abs.bench.ts
``