Skip to content
No description or website provided.
JavaScript
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
benchmarks
lib
tests
.gitignore
Gruntfile.js
LICENSE
README.md
index.js
package.json

README.md

simplematrix

pretty simple matrix math library.

How to use

npm install simplematrix
var m = require('simplematrix');
// solve AX = B
var a = new m.Matrix([[1,2],[3,4]]);
var b = new m.Matrix([[1,1],[1,0]]);
var x = b.dividedBy(a);
x // Watch out for floating point error
/*
{ '0': [ -1, -1.9999999999999996 ],
  '1': [ 1, 1.4999999999999998 ] }
*/
x.rounded() // You can round it if you want (casts to precision 12)
/*
{ '0': [ -1, -2 ],
  '1': [ 1, 1.5 ] }
*/
x.equals(x.rounded()) // But the equals() operator automatically compensates for floating point error
/*
true
*/

Constructors

var a = new m.Matrix([[1,2],[3,4]]);
var i2 = new m.Identity(2);

Functions on each Matrix

times

Returns the result of multiplying a matrix by a constant or another (correctly-dimensioned) matrix.

var c = a.times(b);

plus

var c = a.plus(b);

equals

Tests for equality. Handles floating point error nicely.

if (a.equals(b))

dividedBy

Solves the system of linear equations AX=B via the Gauss-Jordan method with partial pivoting.

var x = b.dividedBy(a);

inverse

Returns the inverse of a matrix (by letting B equal the identity matrix in a.solve(b)). The inverse is cached, so if you call .inverse() a second time, the only work done will be to see if the matrix has changed since the last inverse computation.

var a_inv = a.inverse();

transpose

Returns the transpose of a matrix. Not cached.

var a_T = a.transpose();

copy

Copies a matrix

var a2 = a.copy();

rounded

Takes care of floating point error using parseFloat(f.toFixed(12)) on each element f of the matrix

var niceMatrix = x.rounded();

Properties on each Matrix

rows

var m = a.rows;

columns

var n = a.columns;
Something went wrong with that request. Please try again.