I am implementing a matrix library for use in my research. This should support 2D matrices of size 100x100 (or more perhaps later on). I am a little confused about the algorithm I should be using for matrix multiplication.
I am extremely curious to know what kind of algorithms my peers use? The following are the possible choices:
Naive $O(n^3)$
Strassens Algorithm $O(n^{2.807})$
Coppersmith Winograd Algorithm $O(n^{2.375})$
Obviously (3) is quite complicated and may take quite a few tries to get right. Is it worth the effort ? I must mention here that speed is paramount for my usage as I will have a number of multiplication calls.