ml-matrix
Version:
Matrix manipulation and computation library
46 lines (38 loc) • 1.41 kB
JavaScript
;
var Matrix = require('./matrix');
var SingularValueDecomposition = require('./dc/svd');
var EigenvalueDecomposition = require('./dc/evd');
var LuDecomposition = require('./dc/lu');
var QrDecomposition = require('./dc/qr');
var CholeskyDecomposition = require('./dc/cholesky');
function inverse(matrix) {
matrix = Matrix.checkMatrix(matrix);
return solve(matrix, Matrix.eye(matrix.rows));
}
Matrix.inverse = Matrix.inv = inverse;
Matrix.prototype.inverse = Matrix.prototype.inv = function () {
return inverse(this);
};
function solve(leftHandSide, rightHandSide) {
leftHandSide = Matrix.checkMatrix(leftHandSide);
rightHandSide = Matrix.checkMatrix(rightHandSide);
return leftHandSide.isSquare() ? new LuDecomposition(leftHandSide).solve(rightHandSide) : new QrDecomposition(leftHandSide).solve(rightHandSide);
}
Matrix.solve = solve;
Matrix.prototype.solve = function (other) {
return solve(this, other);
};
module.exports = {
SingularValueDecomposition: SingularValueDecomposition,
SVD: SingularValueDecomposition,
EigenvalueDecomposition: EigenvalueDecomposition,
EVD: EigenvalueDecomposition,
LuDecomposition: LuDecomposition,
LU: LuDecomposition,
QrDecomposition: QrDecomposition,
QR: QrDecomposition,
CholeskyDecomposition: CholeskyDecomposition,
CHO: CholeskyDecomposition,
inverse: inverse,
solve: solve
};