// returns a new matrix Matrix.prototype.mult = function(other) { if (this.width != other.height) { throw "error: incompatible sizes"; } var result = []; for (var i = 0; i < this.height; i++) { result[i] = []; for (var j = 0; j < other.width; j++) { var sum = 0; for (var k = 0; k < this.width; k++) { sum += this.mtx[i][k] * other.mtx[k][j]; } result[i][j] = sum; } } return new Matrix(result); } var a = new Matrix([[1,2],[3,4]]) var b = new Matrix([[-3,-8,3],[-2,1,4]]); print(a.mult(b));