Mattscheibe Geschrieben 8. November 2007 Geschrieben 8. November 2007 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. Zitieren
Klotzkopp Geschrieben 8. November 2007 Geschrieben 8. November 2007 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. Zitieren
flashpixx Geschrieben 8. November 2007 Geschrieben 8. November 2007 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 Zitieren
Klotzkopp Geschrieben 8. November 2007 Geschrieben 8. November 2007 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. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.