matrixMul method
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;
}