UNPKG

ml-matrix

Version:

Matrix manipulation and computation library

46 lines (38 loc) 1.41 kB
'use strict'; 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 };