size = 30
parse arg n
If n < 1 Then Do
n = 1
End
call mkmatrix size, size, "m1"
call mkmatrix size, size, "m2"
Do While n > 0
call mmult(size, size, "m1", "m2", "mm")
n = n - 1
End
say mm.0.0" "mm.2.3" "mm.3.2" "mm.4.4
exit
mkmatrix:
parse arg rows, cols, mx
rows = rows - 1
cols = cols - 1
count = 1
Do r = 0 To rows
Do c = 0 To cols
interpret mx || ".r.c = " count
count = count + 1
End
End
return mx
mmult:
parse arg rows, cols, m1, m2, m3
rows = rows - 1
cols = cols - 1
Do i = 0 To rows
Do j = 0 To cols
val = 0
Do k = 0 To cols
interpret "val = val + " || m1 || ".i.k * " || m2 || ".k.j"
End
interpret m3 || ".i.j = " val
End
End