I have implemented the usual matrix multiplication algorithm and Strassen's algorithm for matrix multiplication. Both algorithms are implemented on Rust. The main advantage of Strassen's algorithm is that it saves one multiplication operation, which is replaced with summations.
I set the base case of recursion to 1, meaning that I continue splitting matrices until I get matrices of size 1x1. Based on my approximate calculations of mathematical operations in both algorithms, Strassen's algorithm should be faster because it reduces the number of multiplications required. However, when I tested it, Strassen's algorithm was slower.
I conducted several measurements of the time required for addition and multiplication, and it turned out that the required time was almost equal for both operations. So, my question is, how is Strassen's algorithm faster if multiplication is not significantly slower than addition?