Я пытаюсь реализовать версию следующего алгоритма: ![Algorithm](https://i.stack.imgur.com/SadLM.png)
Но вместо того, чтобы сводить задачу к 1 умножению, я хочу уменьшить размеры матриц до 16 * 16 и умножить эти блоки.
У меня уже есть реализация для размера блока 1 * 1 (такой же, как алгоритм, упомянутый ранее).Мне нужно расширить свою версию для больших блоков (например, 16 * 16).
Умножение блоков не сложно.Моя проблема заключается в доступе к индексам моих блоков, так как я должен использовать рекурсивный вызов моей версии 1 * 1-блока:
recursive_mult (n / 2, stride, & A [0 + 0 * stepde],& B [0 + 0 * шага], & C [0 + 0 * шага]);
... где n - размер текущих блоков.И я использую шаг в матрицах для тестирования производительности.
Так что я передаю только ссылки на свои матрицы.
Есть ли способ обойти это без изменения рекурсивного вызова для передачи стартовых индексов блоков?