18 lines
449 B
Groovy
18 lines
449 B
Groovy
def assertConformable = { a, b ->
|
|
assert a instanceof List
|
|
assert b instanceof List
|
|
assert a.every { it instanceof List && it.size() == b.size() }
|
|
assert b.every { it instanceof List && it.size() == b[0].size() }
|
|
}
|
|
|
|
def matmulWOIL = { a, b ->
|
|
assertConformable(a, b)
|
|
|
|
def bt = b.transpose()
|
|
a.collect { ai ->
|
|
bt.collect { btj ->
|
|
[ai, btj].transpose().collect { it[0] * it[1] }.sum()
|
|
}
|
|
}
|
|
}
|