qr-test.js (1423B)
1 var vows = require('vows'); 2 var assert = require('assert'); 3 var suite = vows.describe('jStat'); 4 5 require('../env.js'); 6 7 suite.addBatch({ 8 'QR decomposition': { 9 'topic': function() { 10 return jStat; 11 }, 12 'example1': function(jStat) { 13 var A = [[12, -51, 4], [6, 167, -68], [-4, 24, -41]]; 14 var QR = jStat.QR(A); 15 var Q = QR[0]; 16 var R = QR[1]; 17 var tol = 0.0001; 18 assert.epsilon(tol, Q[0][0], 0.8571428571428571); 19 assert.epsilon(tol, Q[0][1], -0.39428571428571446); 20 assert.epsilon(tol, Q[0][2], -0.3314285714285714); 21 assert.epsilon(tol, Q[1][0], 0.4285714285714286); 22 assert.epsilon(tol, Q[1][1], 0.902857142857143); 23 assert.epsilon(tol, Q[1][2], 0.034285714285714315); 24 assert.epsilon(tol, Q[2][0], -0.28571428571428575); 25 assert.epsilon(tol, Q[2][1], 0.1714285714285711); 26 assert.epsilon(tol, Q[2][2], -0.9428571428571428); 27 assert.epsilon(tol, R[0][0], 13.999999999999998); 28 assert.epsilon(tol, R[0][1], 21.00000000000001); 29 assert.epsilon(tol, R[0][2], -14.0); 30 assert.epsilon(tol, R[1][0], 5.506706202140777e-16); 31 assert.epsilon(tol, R[1][1], 175.00000000000003); 32 assert.epsilon(tol, R[1][2], -70.0); 33 assert.epsilon(tol, R[2][0], 3.0198066269804255e-16); 34 assert.epsilon(tol, R[2][1], 9.237055564881295e-16); 35 assert.epsilon(tol, R[2][2], 35.0); 36 } 37 } 38 }); 39 40 suite.export(module);