def
dotprod
xs
ys
=
f64
.
sum
(
map2
(
*
)
xs
ys
))
def
dotprod
[
n
]
(
xs
:
[
n
]
f64
)
(
ys
:
[
n
]
f64
)
:
f64
=
f64
.
sum
(
map2
(
*
)
xs
ys
))
def
matmul
[
n
][
m
][
p
]
(
A
:
[
n
][
m
]
f64
)
(
B
:
[
m
][
p
]
f64
)
:
[
n
][
p
]
f64
=
map
(
\
A_row
->
map
(
\
B_col
->
dotprod
A_row
B_col
)
(
transpose
B
))
A