test('2-variable system in place', function (t) { crout(A.hi(size,size), L, L); var X = new Float64Array(size); var Y = new Float64Array(size); var solution = solve(L, L, A.lo(size,0).pick(0), X, Y); t.equal(X, solution); t.deepEqual([].slice.call(X), expected); for (var y = 0; y < size; y++) { var c = 0; for (var i = 0; i < size; i++) { c += X[i] * A.get(i, y); } t.equal(c, A.get(size, y)); } t.end(); });
var solve = require('../'); var show = require('ndarray-show'); var crout = require('ndarray-crout-decomposition'); var ndarray = require('ndarray'); var zeros = require('zeros'); var A = ndarray( [ 2, 1, -1, 8, -3, -1, 2, -11, -2, 1, 2, -3 ], [ 4, 3 ], [ 1, 4 ] ); var L = zeros([ 3, 3 ]); var U = zeros([ 3, 3 ]); crout(A.hi(3,3), L, U); var X = ndarray(new Float64Array(3)); var Y = ndarray(new Float64Array(3)); var solution = solve(L, U, A.lo(3,0).pick(0), X, Y); console.log('input:\n' + show(A), '\n'); console.log('solution:\n' + show(solution));