multiply method

void multiply (Float32List out, int outOffset, Float32List a, int aOffset, Float32List b, int bOffset)

out = a * b; Starting at outOffset, aOffset, and bOffset.

Implementation

static void multiply(Float32List out, int outOffset, Float32List a,
    int aOffset, Float32List b, int bOffset) {
  final double a00 = a[aOffset++];
  final double a01 = a[aOffset++];
  final double a02 = a[aOffset++];
  final double a03 = a[aOffset++];
  final double a10 = a[aOffset++];
  final double a11 = a[aOffset++];
  final double a12 = a[aOffset++];
  final double a13 = a[aOffset++];
  final double a20 = a[aOffset++];
  final double a21 = a[aOffset++];
  final double a22 = a[aOffset++];
  final double a23 = a[aOffset++];
  final double a30 = a[aOffset++];
  final double a31 = a[aOffset++];
  final double a32 = a[aOffset++];
  final double a33 = a[aOffset++];

  double b0 = b[bOffset++];
  double b1 = b[bOffset++];
  double b2 = b[bOffset++];
  double b3 = b[bOffset++];
  out[outOffset++] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;
  out[outOffset++] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;
  out[outOffset++] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;
  out[outOffset++] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;

  b0 = b[bOffset++];
  b1 = b[bOffset++];
  b2 = b[bOffset++];
  b3 = b[bOffset++];
  out[outOffset++] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;
  out[outOffset++] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;
  out[outOffset++] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;
  out[outOffset++] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;

  b0 = b[bOffset++];
  b1 = b[bOffset++];
  b2 = b[bOffset++];
  b3 = b[bOffset++];
  out[outOffset++] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;
  out[outOffset++] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;
  out[outOffset++] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;
  out[outOffset++] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;

  b0 = b[bOffset++];
  b1 = b[bOffset++];
  b2 = b[bOffset++];
  b3 = b[bOffset++];
  out[outOffset++] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;
  out[outOffset++] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;
  out[outOffset++] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;
  out[outOffset++] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;
}