by mci on 6/20/25, 4:35 PM with 30 comments
by kubb on 6/20/25, 5:01 PM
Am I the only one for whom this crucial explanation didn’t click? Admittedly, I might be stupid.
Wikipedia is a bit more understandable: „The Cracovian product of two matrices, say A and B, is defined by A ∧ B = (B^T)A
by fxj on 6/20/25, 5:09 PM
https://en.wikipedia.org/wiki/Cracovian
The Cracovian product of two matrices, say A and B, is defined by
A ∧ B = BT A,
where BT and A are assumed compatible for the common (Cayley) type of matrix multiplication and BT is the transpose of B.
Since (AB)T = BT AT, the products (A ∧ B) ∧ C and A ∧ (B ∧ C) will generally be different; thus, Cracovian multiplication is non-associative.
A good reference how to use them and why they are useful is here (pdf):
https://archive.computerhistory.org/resources/access/text/20...
by gus_massa on 6/21/25, 3:18 AM
That's very specific of Python. A few years ago we were multiplying a lot of matrices in Fortran and we tried to transpose one of the matrices before the multiplication. With -o0 it was a huge difference because the calculation used contiguous numbers and was more chache friendly. Anyway, with -o3 the compiler made some trick that made the difference disappear, but I never tried to understand what the compiler was doing.
by gnulinux on 6/20/25, 5:56 PM
by noosphr on 6/20/25, 9:57 PM
by TimorousBestie on 6/20/25, 6:52 PM
by rundigen12 on 6/21/25, 10:34 AM
There was a claim near the top that some things are easier to compute when viewed as cracovians. then some explanation, then suddently it switches to numpy and showing the time is the same.
New title: "Cracovians are a Waste of (the Reader's) Time"?
by semiinfinitely on 6/20/25, 10:02 PM
by esafak on 6/20/25, 6:23 PM