matrixMul method

  1. @override
Float32Matrix matrixMul(
  1. Matrix<double> right
)
override

Computes matrix product.

Implementation

@override
Float32Matrix matrixMul(Matrix<double> right) {
  final n = width;
  if (right.height != n) {
    throw ArgumentError.value(
      right,
      'right',
      'Left matrix width does not equal right matrix height: $n != ${right.height}',
    );
  }
  final dataWidth = right.width;
  final dataHeight = height;
  final builder = toBuilder();
  builder.tensorShape = TensorShape(right.width, height);
  for (var y = 0; y < dataHeight; y++) {
    for (var x = 0; x < dataWidth; x++) {
      var sum = 0.0;
      for (var i = 0; i < n; i++) {
        sum += getXY(i, y) * right.getXY(x, i);
      }
      builder.setXY(x, y, sum);
    }
  }
  return builder.build() as Float32Matrix;
}