time-to-botec

Benchmark sampling in different programming languages
Log | Files | Refs | README

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);