title: Laderman's 3x3 matrix multiplication with only 23 multiplications, is it worth it?
body: <p>Take the product of two 3x3 matrices <code>A*B=C</code>. Naively this requires 27 multiplications using the <a href="http://en.wikipedia.org/wiki/Matrix_multiplication#Matrix_product_.28two_matrices.29" rel="noreferrer">standard algorithm</a>. If one were clever, you could do this using only 23 multiplications, <a href="http://www.ams.org/journals/bull/1976-82-01/S0002-9904-1976-13988-2/S0002-9904-1976-13988-2.pdf" rel="noreferrer">a result found in 1973 by Laderman</a>. The technique involves saving intermediate steps and combining them in the right way. </p>
  
  <p>Now lets fix a language and a type, say C++ with elements of <code>double</code>. If the Laderman algorithm was hard-coded versus the simple double loop, could we expect the performance of a modern compiler to edge out the differences of the algorithms? </p>
  
  <p><strong>Notes about this question:</strong> This is a <em>programming</em> site, and the question is asked in the context of the best practice for a time-critical inner loop; premature optimization this is not. Tips on implementation are greatly welcomed as comments.</p>