return super.multiply(matrix, factory);
}
private ByteMatrix multiplyBlockedWith64(ByteMatrix matrix, Factory factory) {
ByteMatrix result = factory.createMatrix(rows(), matrix.columns());
for (int i = 0; i < rows(); i += BLOCKSIZE) {
for (int k = 0; k < columns(); k += BLOCKSIZE) {
for (int j = 0; j < matrix.columns(); j += BLOCKSIZE) {
for (int u = 0; u < BLOCKSIZE; u++) {
for (int w = 0; w < BLOCKSIZE; w++) {
for (int v = 0; v < BLOCKSIZE; v++) {
final byte prod = aTimesB(safeGet(i + u, k + w), matrix.get(k + w, j + v));
result.set(i + u, j + v, aPlusB(result.get(i + u, j + v), prod));
}
}
}
}
}