README
A high performance linear algebra library, written in JavaScript and optimized with C++ bindings to BLAS, SPBLAS, LAPACK.
Forked from mateogianolio/vectorious, added sparse matrix/vector support (by using SPBLAS, nodejs only) and boost of AX=B solve (by using LAPACK).
todo: documment new featues
Also see nblas-plus
Usage
In node.js
First please read and apply Preinstall section of nblas-plus
Windows is not tested.
Then install:
$ npm install vectorious-plus
var v = require('vectorious'),
Matrix = v.Matrix,
Vector = v.Vector,
SpVector = v.SpVector,
SpMatrix = v.Matrix,
BLAS = v.BLAS; // access BLAS routines (and also SPBLAS, LAPACK)
In browser
Download a release and use it like this:
<script src="vectorious-4.x.x.min.js"></script>
<script>
var A = new Matrix([[1], [2], [3]]),
B = new Matrix([[1, 3, 5]]),
C = A.multiply(B);
console.log('C:', C.toArray());
/* C: [
[1, 3, 5],
[2, 6, 10],
[3, 9, 15]
] */
</script>
Examples
Basic
Machine learning
Documentation
The documentation is located in the wiki section of this repository.
Benchmarks
Internal benchmarks are located in the wiki section of this repository.
Compared to other libraries
The following benchmarks compare Vectorious 4.1.0 with three popular matrix/vector libraries:
The graphs show operations per second on the vertical (y) axis.
Below is a graph comparing the vector operations add
, angle
, dot
, magnitude
(aka L2-norm
), normalize
and scale
.
The operations were performed on vectors generated with Vector.random(1048576)
.
Below is a graph comparing the matrix operations add
, scale
and transpose
.
The operations were performed on matrices generated with Matrix.random(512, 512)
.