Veröffentlicht 8. November 200717 j Hallo, für eine Echtzeit-Anwendung auf einem PowerPC verwende ich die pow()-Funktion. Bei Laufzeittests habe ich herausgefunden, dass das Programm um einiges schneller abläuft, wenn ich stattdessen exp(y*ln(x)) verwende. (etwa 25%) Hat jemand auch schon mal sowas beobachtet? Eigentlich müsste die pow()-Funktion doch genaus so umgesetzt werden und dann dürften sich keine Laufzeitunterschiede ergeben.
8. November 200717 j Eigentlich müsste die pow()-Funktion doch genaus so umgesetzt werden Warum? Mathematisch gesehen ist das zwar dasselbe, aber durch die eingebaute Ungenauigkeit der Fließkommatypen sind die bei der exp/ln-Variante entstehenden Rundungsfehler größer als bei einer eigenen pow-Implementierung.
8. November 200717 j Hallo, das klinkt jetzt wirklich interessant. Ich hätte jetzt getippt, dass exp() bzw ln() wesentlich langsamer sind, als pow() (jedenfalls so aus dem Bauch heraus). Schau Dir doch mal die Quellen von pow / exp / ln an. Wenn pow() intern rekursiv arbeitet, könnte das schon sein, ist aber nur eine Vermutung. Ich setze für meine mathematischen Berechnungen diese Lib ein Boost C++ Libraries Würde mich aber wirklich interessieren, warum das auf einem PPC so ist, habe ja selbst einen. Gruß Phil
8. November 200717 j Würde mich aber wirklich interessieren, warum das auf einem PPC so ist, habe ja selbst einen.Das muss ja nicht generell so sein, sondern vielleicht nur bei dem Compiler, den Mattscheibe benutzt.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.