Los siete bloques de Strassen
Los siete bloques de rango uno de Strassen (1969) reconstruyen exactamente el tensor 4 × 4 × 4, así que las matrices 2 × 2 se pueden multiplicar con siete multiplicaciones:
np.array_equal(np.einsum("ra,rb,rc->abc", U, V, W), matmul_tensor(2)) # True
No es un camino recto. Añade los bloques uno a uno y el número de celdas incorrectas es 8, 12, 12, 12, 10, 8, 4, 0. En los siete pasos, 20 celdas distintas llegan a contener algo; 12 se cancelan a cero y las 8 que quedan son el tensor.
Con números es un mal negocio: 7 multiplicaciones y 18 sumas y restas, frente a 8 y 4 de la regla escolar, 25 operaciones contra 12. Con [[1, 2], [3, 4]] y [[5, 6], [7, 8]], los siete productos 65, 35, −2, 8, 24, 22, −30 dan 19, 22, 43, 50.