Search code examples
algorithmmatrixmatrix-multiplication

Where is strassen's matrix multiplication useful?


Strassen's algorithm for matrix multiplication just gives a marginal improvement over the conventional O(N^3) algorithm. It has higher constant factors and is much harder to implement. Given these shortcomings, is strassens algorithm actually useful and is it implemented in any library for matrix multiplication? Moreover, how is matrix multiplication implemented in libraries?


Solution

  • Generally Strassen’s Method is not preferred for practical applications for following reasons.

    1. The constants used in Strassen’s method are high and for a typical application Naive method works better.
    2. For Sparse matrices, there are better methods especially designed for them.
    3. The submatrices in recursion take extra space.
    4. Because of the limited precision of computer arithmetic on noninteger values, larger errors accumulate in Strassen’s algorithm than in Naive Method.