vectorious
vectorious copied to clipboard
Matrix: multiplication performance
A switch to using the Strassen algorithm will reduce the algorithmic complexity from O(n3) to O(n2.81).
If you're willing to go that path, maybe switching to Coppersmith-Winograd is even better. Strassen was the first to find an algorithm better than O(n^3), this led to more research finding even better algoritms. It's actually stated in the Wikipedia link you posted.
Note that I'm totally clueless about any of this.
If I have time, I would contribute to it As I learnt it in uni and I am kind of interested in making an implementation, if you're not against
I think the Strassen algorithm is the best choice for most applications.
From Wikipedia:
Algorithms with better asymptotic running time than the Strassen algorithm are rarely used in practice, because the large constant factors in their running times make them impractical.