template meta programming optimierung
-
Hallo,
ich suche den Namen einer speziellen Technik zur Optimierung von Code mit Hilfe von template-meta-programming. Habe das vor einer Weile gelesen und jetzt habe ich einen Use-case, wo ich das benötigen könnte - aber mir fällt der Name nicht mehr ein
Das Beispiel an dem es erklärt wurde war glaube ich Matrix-Multiplikation. Und zwar wurde da aus einer Multiplikation dreier Matrizen A*B*C nicht Code generiert, welcher zuerst A mit B multipliziert und dann das Ergebnis mit C, sondern es wurde direkt Code generiert, welcher diese dreier Multiplikation in der innersten Schleife ausführte. Das ganze wurde irgendwie mit einem Operator-Objekt realisiert, wenn ich mich richtig erinnere. Also operator * (Matrix, Matrix) liefert irgendwie ein MultOp Objekt zurück, welches mit weiteren MultOp Objekten zur Compilezeit kombiniert werden konnte, eben um obiges Beispiel zu erreichen.
Dumme Beschreibung...anyway...wer weiss was ich meine und kann mir den Namen der Technik nennen. Will mich nochmal in die genauen Details einlesen.
MfG
-
Expression Templates?
-
Exakt, Danke!
-
Hi,
falls Du dein Beispiel für Matrix-Multiplikation wieder gefunden hast, könntest du mir bitte den Link dazu geben, ich find das Thema auch interessant, habe aber bisher nur Addition und skalare Multiplikation gefunden ...MfG CatDog
-
Ich glaube, Eigen (die Bibliothek) verwendet auch ETs. Da einfach mal reingucken?
-
Ich hatte das falsch in Erinnerung - die Erklärung erfolgte am Beispiel eines Vektors, keiner Matrix - es wurde nur erwähnt, dass das auch für Matrizen möglich wäre.
Was ich suchte war jedenfalls: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.43.248 bzw. http://www10.informatik.uni-erlangen.de/~pflaum/pflaum/ProSeminar/exprtmpl.html.MfG
-
krümelkacker schrieb:
Ich glaube, Eigen (die Bibliothek) verwendet auch ETs. Da einfach mal reingucken?
Ja, es wird auch einiges in der Doku erklärt:
http://eigen.tuxfamily.org/dox/ (Advanced Topics)