Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Was ist schneller ? sqr oder sqrt ? (https://www.delphipraxis.net/39087-ist-schneller-sqr-oder-sqrt.html)

jfheins 28. Jan 2005 14:32


Was ist schneller ? sqr oder sqrt ?
 
siehe Titel.

Ich habe iene Kollisionserkennung, mit Pytagoras, und wüßte nun gerne, was schneller ist:
Delphi-Quellcode:
c = sqrt(sqr(a) + sqr(b));
oder
Delphi-Quellcode:
sqr(c) = sqr(a) + sqr (b);
Da dieser Codeteil sehr oft ausgeführt wird,
kann ein kleiner Unterschied bereits entscheidend sein ...

toms 28. Jan 2005 14:33

Re: Was ist schneller ? sqr oder sqrt ?
 
Hi,

Wie waers mit Zeit messen?

ste_ett 28. Jan 2005 14:58

Re: Was ist schneller ? sqr oder sqrt ?
 
Wie willst du
Code:
sqr(c) = sqr(a) + sqr(b)
umwandeln in code ohne sqrt()?

Um sqrt() kommst du nicht herum. :)

jfheins 28. Jan 2005 15:18

Re: Was ist schneller ? sqr oder sqrt ?
 
Zitat:

Zitat von ste_ett
Wie willst du
Code:
sqr(c) = sqr(a) + sqr(b)
umwandeln in code ohne sqrt()?

Um sqrt() kommst du nicht herum. :)

Es ist egal, ob ich (5² = 3² + 4²) frage, oder (5 = WURZEL(3² + 4²)) "frage", denn man kann beides inenander umformen ...

Die Frage ist einfach nur, ob's einen Geschwindigkeitsunterschied gibt ... :roll:

Stevie 28. Jan 2005 15:41

Re: Was ist schneller ? sqr oder sqrt ?
 
Zitat:

Zitat von toms
Hi,

Wie waers mit Zeit messen?

Und zwar mit MSDN-Library durchsuchenQueryPerformanceCounter und MSDN-Library durchsuchenQueryPerformanceFrequency.

shmia 28. Jan 2005 15:41

Re: Was ist schneller ? sqr oder sqrt ?
 
Wurzelziehen (sqrt) ist um ein Vielfaches langsamer als Quadrieren (sqr).
sqr ist intern ja nur eine einfache Multiplikation: sqr(x)=x*x

negaH 28. Jan 2005 17:22

Re: Was ist schneller ? sqr oder sqrt ?
 
sqr(a) = sqr(b) + sqr(c) ist besser FALLS du in deinen weiteren Formeln mit sqr(a) weiterrechnen kannst. Denn sqr(a) kann auf Grund seiner wertmäßige Größe im weiteren Verlauf deiner Berechnungen zu größeren Ungenauigkeiten bzw. Überläufen führen.

Gruß Hagen


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz