I’ve been working on linear algebra in APL and I decided to write an article on one of the fundamental operations of linear algebra (and neural networks), matrix multiplication! In this post I walk through how to multiply a 2x2 array by a 2x1 array.
And there’s no matrix multiplication glyph !
This post walks through:
- What is matrix multiplication and manual calculation in this simple example
- How to do matrix multiplication in APL step by step and how and why it works (including explaining the dot glyph)
- Shows a first (relatively) simple example of how glyphs will combine in a really powerful and flexible ways. Matrix multiplication for example is
+.x, rather than having a glyph specific to matrix multiplication.
Hope you enjoy!
Link to post
Great stuff. I’m a big fan of inner product in APL. So cool the way they generalised the idea beyond standard math notation
Hey all - I got a question about how this works with a matrix times a matrix instead of a matrix times a vector, so I updated the post to include an example showing that it works the same way with 2 matrices!
@Ezno I believe that, because inner product in APL is an operator, not a function, the arguments to it are
I did not know that. I’ve updated the post to use that convention. Thanks!
Really cool Isaac! (btw the bullet points in your introduction don’t seem to be parsing properly- I’m viewing on mobile)
I was wondering if someone could help me in understanding the following example:
(2 2 ⍴ ⍳4) +.× (2 ⍴ 2)
2 2 ⍴ ⍳4 +.× 2 ⍴ 2
I understand the first example, but I am unsure what is going on in the second. I assume it is something with precedence but I am not sure.
APL does right to left precedence. So
2 2 ⍴ ⍳4 +.× 2 ⍴ 2 would be equivalent to
(2 2 ⍴ (⍳4 +.× (2 ⍴ 2)))