Wurzeln schnell ziehen
-
LiquidAcid schrieb:
14 Bit sind nicht gerade viel und das kann zu derben Fehlern in der Darstellung führen.
ist bei mir bis jetzt noch nie aufgefallen. die genauigkeit müsste aber trotzdem über der von InvSqrt liegen.
-
Afaik liegen sie in etwa auf demselben Level.
cya
liquid
-
hab mal ein paar tests gemacht und InvSqrt ist wirklich die mit abstand unpräziseste, gefolgt von 3dnow. geschwindikeits/präzisionsverhältniss ist wohl die beste wahl Sqrt2.
gruss
adapto
-
p.s: bei SqrtSSE gab es keine abweichungen zu sqrt.
-
Die haben ungefähr dieselben Tests gemacht, aber Abweichungen bei der Verwendung von SSE gefunden.
cya
liquid
-
Passt aber auf, das ihr euch nicht veroptimiert.
Bye, TGGC \-/
-
Wenn man kein D3DX hat muss man halt selber Hand anlegen.
cya
liquidEDIT: Ahja, was ich noch sagen wollte. Hier im Thread gibt es einige Verwechslung was rsprt und sqrt angeht. Der Code der Carmack angedichtet wird berechnet die reziproke Quadratwurzel. Was hier einige machen ist einfach nur die Quadratwurzel berechnen.
-
InvSqrt(x)*x
-
=Sqrt(x)
ich weiß
-
naja wenn ihr die letzte code-zeile von InvSqrt oefters ausfuehrt, wird auch das ergebnis genauer aber die performance geht in den keller!
// z.b. 3 iterationen x = x*(1.5f - xhalf*x*x); x = x*(1.5f - xhalf*x*x); x = x*(1.5f - xhalf*x*x);
fuer alle die wissen wollen warum das so funktioniert sei folgendes paper empfohlen:
http://www.math.purdue.edu/~clomont/Math/Papers/2003/InvSqrt.pdf
-
Wow, du hast einen über ein Jahr alten Beitrag wieder ausgegraben