multiplyInto static method

void multiplyInto(
  1. List<double> out,
  2. List<double> matrixA,
  3. List<double> matrixB
)

Implementation

static void multiplyInto(
    List<double> out, List<double> matrixA, List<double> matrixB) {
  var b00 = matrixB[0];
  var b01 = matrixB[1];
  var b02 = matrixB[2];
  var b03 = matrixB[3];
  var b10 = matrixB[4];
  var b11 = matrixB[5];
  var b12 = matrixB[6];
  var b13 = matrixB[7];
  var b20 = matrixB[8];
  var b21 = matrixB[9];
  var b22 = matrixB[10];
  var b23 = matrixB[11];
  var b30 = matrixB[12];
  var b31 = matrixB[13];
  var b32 = matrixB[14];
  var b33 = matrixB[15];

  var a0 = matrixA[0];
  var a1 = matrixA[1];
  var a2 = matrixA[2];
  var a3 = matrixA[3];

  out[0] = a0 * b00 + a1 * b10 + a2 * b20 + a3 * b30;
  out[1] = a0 * b01 + a1 * b11 + a2 * b21 + a3 * b31;
  out[2] = a0 * b02 + a1 * b12 + a2 * b22 + a3 * b32;
  out[3] = a0 * b03 + a1 * b13 + a2 * b23 + a3 * b33;

  a0 = matrixA[4];
  a1 = matrixA[5];
  a2 = matrixA[6];
  a3 = matrixA[7];
  out[4] = a0 * b00 + a1 * b10 + a2 * b20 + a3 * b30;
  out[5] = a0 * b01 + a1 * b11 + a2 * b21 + a3 * b31;
  out[6] = a0 * b02 + a1 * b12 + a2 * b22 + a3 * b32;
  out[7] = a0 * b03 + a1 * b13 + a2 * b23 + a3 * b33;

  a0 = matrixA[8];
  a1 = matrixA[9];
  a2 = matrixA[10];
  a3 = matrixA[11];
  out[8] = a0 * b00 + a1 * b10 + a2 * b20 + a3 * b30;
  out[9] = a0 * b01 + a1 * b11 + a2 * b21 + a3 * b31;
  out[10] = a0 * b02 + a1 * b12 + a2 * b22 + a3 * b32;
  out[11] = a0 * b03 + a1 * b13 + a2 * b23 + a3 * b33;

  a0 = matrixA[12];
  a1 = matrixA[13];
  a2 = matrixA[14];
  a3 = matrixA[15];
  out[12] = a0 * b00 + a1 * b10 + a2 * b20 + a3 * b30;
  out[13] = a0 * b01 + a1 * b11 + a2 * b21 + a3 * b31;
  out[14] = a0 * b02 + a1 * b12 + a2 * b22 + a3 * b32;
  out[15] = a0 * b03 + a1 * b13 + a2 * b23 + a3 * b33;
}