6.4.2.2.2 : Un algorithme encore plus fort
Cet algorithme est plublier dans [7]A New General-Purpose Method to Multiply 3x3 Matrices Using Only 23 Multiplications, 2011, Nicolas T. Courtois, Gregory V. Bard and Daniel Hulme. Il définit les coéficients de la manière suivante :$$\begin{eqnarray*} P_{01} & = & a_{23} \left( - b_{12} + b_{13} - b_{32} + b_{33} \right) \\ P_{02} & = & \left( - a_{11} + a_{13} + a_{31} + a_{32} \right) \left(b_{21} + b_{22} \right) \\ P_{03} & = & \left(a_{13} + a_{23} - a_{33} \right) \left(b_{31} + b_{32} - b_{33} \right) \\ P_{04} & = & \left( - a_{11} + a_{13} \right) \left( - b_{21} - b_{22} + b_{31} \right) \\ P_{05} & = & \left(a_{11} - a_{13} + a_{33} \right) b_{31} \\ P_{06} & = & \left( - a_{21} + a_{23} + a_{31} \right) \left(b_{12} - b_{13} \right) \\ P_{07} & = & \left( - a_{31} - a_{32} \right) b_{22} \\ P_{08} & = & a_{31} \left(b_{11} - b_{21} \right) \\ P_{09} & = & \left( - a_{21} - a_{22} + a_{23} \right) \left(b_{33} \right) \\ P_{10} & = & \left(a_{11} + a_{21} - a_{31} \right) \left(b_{11} + b_{12} + b_{33} \right) \\ P_{11} & = & \left( - a_{12} - a_{22} + a_{32} \right) \left( - b_{22} + b_{23} \right) \\ P_{12} & = & a_{33} b_{32} \\ P_{13} & = & a_{22} \left(b_{13} - b_{23} \right) \\ P_{14} & = & \left(a_{21} + a_{22} \right) \left(b_{13} + b_{33} \right) \\ P_{15} & = & a_{11} \left( - b_{11} + b_{21} - b_{31} \right) \\ P_{16} & = & a_{31} \left(b_{12} - b_{22} \right) \\ P_{17} & = & a_{12} \left( - b_{22} + b_{23} - b_{33} \right) \\ P_{18} & = & \left( - a_{11} + a_{12} + a_{13} + a_{22} + a_{31} \right) \left(b_{21} + b_{22} + b_{33} \right) \\ P_{19} & = & \left( - a_{11} + a_{22} + a_{31} \right) \left(b_{13} + b_{21} + b_{33} \right) \\ P_{20} & = & \left( - a_{12} + a_{21} + a_{22} - a_{23} - a_{33} \right) \left( - b_{33} \right) \\ P_{21} & = & \left( - a_{22} - a_{31} \right) \left(b_{13} - b_{22} \right) \\ P_{22} & = & \left( - a_{11} - a_{12} + a_{31} + a_{32} \right) b_{21} \\ P_{23} & = & \left(a_{11} + a_{23} \right) \left(b_{12} - b_{13} - b_{31} \right) \end{eqnarray*}$$
Ce qui donne :
$$\begin{eqnarray*} P_{11} & = & P_{02}+P_{04}+P_{07}-P_{15}-P_{22} \\ P_{12} & = & P_{01}-P_{02}+P_{03}+P_{05}-P_{07}+P_{09}+P_{12}+P_{18}-P_{19}-P_{20}-P_{21}+P_{22}+P_{23} \\ P_{13} & = & -P_{02}-P_{07}+P_{17}+P_{18}-P_{19}-P_{21}+P_{22} \\ P_{21} & = & P_{06}+P_{08}+P_{10}-P_{14}+P_{15}+P_{19}-P_{23} \\ P_{22} & = & -P_{01}-P_{06}+P_{09}+P_{14}+P_{16}+P_{21} \\ P_{23} & = & P_{09}-P_{13}+P_{14} \\ P_{31} & = & P_{02}+P_{04}+P_{05}+P_{07}+P_{08} \\ P_{32} & = & -P_{07}+P_{12}+P_{16} \\ P_{33} & = & -P_{07}-P_{09}+P_{11}-P_{13}+P_{17}+P_{20}-P_{21} \\ \end{eqnarray*}$$
Ce calcul utilise donc :
- $23$ multiplications
- $107$ additions
Soit $2$ additions de moins que Laderman.
Sa complexité est donc légèrement plus faible que la méthode de Laderman en $O\left(N^{2.854}\right)$ (voir section 6.4.2.2.1).