Алгоритм Штрассена - возможно ли сделать pxq матричное умножение?
Я пытаюсь найти реализацию умножения матрицы pxq в c, используя алгоритм Штрассена. Я не уверен, что это возможно.
В википедии алгоритм написан так:
M1 = (A + D) * (E + H) = AE + AH + DE + DH
M2 = (A + B) * H = AH + BH
но это не будет работать для матрицы pxq. Этот подход определен для матрицы 2x2, а не для матрицы pxq. Для этого нужна какая-то петля, но я не уверен, что именно? Это может быть невозможно?
ОБНОВИТЬ:
ПОЧЕМУ Я ЭТО ЗАПРОСУ?
Я совершенно уверен, что алгоритм Штрассена является очень быстрым (не требует личного опыта. Только отзывы), даже мне нужно написать код для больших умножений матриц (содержит количество строк и столбцов), а затем количество строк и столбцов, которые будут постоянно меняйся каждый раз. Итак, мне нужно написать один для матрицы pxq. Итак, я хочу подтвердить, возможно ли это...
Strassen_algorithm: http://en.wikipedia.org/wiki/Strassen_algorithm