Slide 9
Slide 9 text
分割統治
def prod(a, b):
if a.order == b.order == 1:
return matrix_1x1(a[0, 0] * b[0, 0])
a11, a12, a21, a22 = partition(a)
b11, b12, b21, b22 = partition(b)
c11 = prod(a11, b11) + prod(a12, b21)
c12 = prod(a11, b12) + prod(a12, b22)
c21 = prod(a21, b11) + prod(a22, b21)
c22 = prod(a21, b12) + prod(a22, b22)
return concat(c11, c12, c21, c22)
計算量はスカラ値の掛け算の回数に比例
n次行列の乗算は
2
次行列の乗算を8回再帰呼び出し
#jjug
9/19