Ladermans 3x3-Matrixmultiplikation mit nur 23 Multiplikationen, ist es das wert?

Nehmen Sie das Produkt von zwei 3x3-MatrizenA*B=C. Naiv erfordert dies 27 Multiplikationen mit demStandardalgorithmus. Wenn man schlau wäre, könnte man dies mit nur 23 Multiplikationen tun,Ein Ergebnis, das 1973 von Laderman gefunden wurde. Die Technik beinhaltet das Speichern von Zwischenschritten und deren richtige Kombination.

Jetzt können Sie eine Sprache und einen Typ festlegen, z. B. C ++ mit Elementen vondouble. Wenn der Laderman-Algorithmus im Vergleich zur einfachen Doppelschleife hartcodiert wäre, könnten wir dann erwarten, dass die Leistung eines modernen Compilers die Unterschiede der Algorithmen aushebelt?

Anmerkungen zu dieser Frage: Das ist einProgrammierung Website, und die Frage wird im Kontext der besten Praxis für eine zeitkritische innere Schleife gestellt; Eine vorzeitige Optimierung ist dies nicht. Implementierungstipps sind als Kommentare sehr willkommen.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage