#!/usr/bin/ruby
func matrix_multi(a, b) {
var m = [[]]
for r in ^a {
for c in ^b[0] {
for i in ^b {
m[r][c] := 0 += (a[r][i] * b[i][c])
}
}
}
return m
}
var a = [
[1, 2],
[3, 4],
[5, 6],
[7, 8]
]
var b = [
[1, 2, 3],
[4, 5, 6]
]
var m = matrix_multi(a, b)
for line in m {
say line.map{|i|'%3d' % i }.join(', ')
}
var result = [
[ 9, 12, 15],
[19, 26, 33],
[29, 40, 51],
[39, 54, 69],
]
assert_eq(m, result)