IE 3x3 Matrix Multiply (v2)

Revision 2 of this benchmark created on


Setup

var MAT_3x3 = [
      [2, 999, 4],
      [1, 2, 1],
      [4, 999, 2]
    ];
    
    function matrixMultiply(m1, m2) {
      var m1_0 = m1[0];
      var m1_1 = m1[1];
      var m1_2 = m1[2];
      var m2_0 = m2[0];
      var m2_1 = m2[1];
      var m2_2 = m2[2];
    
      var m1_0_0 = m1_0[0];
      var m1_0_1 = m1_0[1];
      var m1_0_2 = m1_0[2];
      var m1_1_0 = m1_1[0];
      var m1_1_1 = m1_1[1];
      var m1_1_2 = m1_1[2];
      var m1_2_0 = m1_2[0];
      var m1_2_1 = m1_2[1];
      var m1_2_2 = m1_2[2];
    
      var m2_0_0 = m2_0[0];
      var m2_0_1 = m2_0[1];
      var m2_0_2 = m2_0[2];
      var m2_1_0 = m2_1[0];
      var m2_1_1 = m2_1[1];
      var m2_1_2 = m2_1[2];
      var m2_2_0 = m2_2[0];
      var m2_2_1 = m2_2[1];
      var m2_2_2 = m2_2[2];
    
      return [
        [m1_0_0 * m2_0_0 + m1_0_1 * m2_1_0 + m1_0_2 * m2_2_0, m1_0_0 * m2_0_1 + m1_0_1 * m2_1_1 + m1_0_2 * m2_2_1, m1_0_0 * m2_0_2 + m1_0_1 * m2_1_2 + m1_0_2 * m2_2_2], [m1_1_0 * m2_0_0 + m1_1_1 * m2_1_0 + m1_1_2 * m2_2_0, m1_1_0 * m2_0_1 + m1_1_1 * m2_1_1 + m1_1_2 * m2_2_1, m1_1_0 * m2_0_2 + m1_1_1 * m2_1_2 + m1_1_2 * m2_2_2], [m1_2_0 * m2_0_0 + m1_2_1 * m2_1_0 + m1_2_2 * m2_2_0, m1_2_0 * m2_0_1 + m1_2_1 * m2_1_1 + m1_2_2 * m2_2_1, m1_2_0 * m2_0_2 + m1_2_1 * m2_1_2 + m1_2_2 * m2_2_2]
      ];
    }
    
    
    function matrixMultiply2(m1, m2) {
      var m1_0 = m1[0];
      var m1_1 = m1[1];
      var m1_2 = m1[2];
      var m2_0 = m2[0];
      var m2_1 = m2[1];
      var m2_2 = m2[2];
      return [
        [m1_0[0] * m2_0[0] + m1_0[1] * m2_1[0] + m1_0[2] * m2_2[0], 
         m1_0[0] * m2_0[1] + m1_0[1] * m2_1[1] + m1_0[2] * m2_2[1], 
         m1_0[0] * m2_0[2] + m1_0[1] * m2_1[2] + m1_0[2] * m2_2[2]], 
        
        [m1_1[0] * m2_0[0] + m1_1[1] * m2_1[0] + m1_1[2] * m2_2[0], 
         m1_1[0] * m2_0[1] + m1_1[1] * m2_1[1] + m1_1[2] * m2_2[1], 
         m1_1[0] * m2_0[2] + m1_1[1] * m2_1[2] + m1_1[2] * m2_2[2]], 
    
        [m1_2[0] * m2_0[0] + m1_2[1] * m2_1[0] + m1_2[2] * m2_2[0], 
         m1_2[0] * m2_0[1] + m1_2[1] * m2_1[1] + m1_2[2] * m2_2[1], 
         m1_2[0] * m2_0[2] + m1_2[1] * m2_1[2] + m1_2[2] * m2_2[2]]
      ];
    }

Test runner

Ready to run.

Testing in
TestOps/sec
Multiply 1
matrixMultiply(MAT_3x3, MAT_3x3);
ready
Multiply 2
matrixMultiply2(MAT_3x3, MAT_3x3);
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.