![]() |
Re: Punkt innerhalb Kreis?
Zitat:
Immerhin sieht man, das man eben doch ab und zu mit Assembler noch etwas herausholen kann. In vergangenen Challenges (Textsuche, Arrays, Strings etc.) war das nicht bzw. nur marginal möglich. Hier (bei Berechnungen) kann man aber einen Compiler u.U. noch optimieren... Ach, eine kleine Kritik (die aber nichts am Ergebnis ändert): Du vergleichst Äpfel mit Birnen, da die Funktionsresultate unterschiedlichen Datentyps sind. Weiterhin ist der Aufruf der 'Sign'-Funktion in Version #2 +überflüssig, denn man prüft eh auf '<0' und '>0'. |
Re: Punkt innerhalb Kreis?
hier ließ sich nur viel mit ASM optimieren, da der Compiler die Variablen und Zwischenergebnise einzeln verwaltet und ich hier Vieles in sich selber belassen konnte,
also die ganze Berechnung komplett in die Register verlagert hatte, wärend der Compiler oftmals Zwischenergebnisse auf dem Stack ablegt (mir haben praktisch 4 Register gereicht, wärend Delphi mit allen Variablen und temporären Variablen, für Zwischenergebnisse, auf über 4 kommt ... wobei standardmäßig eh nur 3 Register frei veränderbar sind) beim Suchen dagegen braucht man nicht viele Register, da dort eh vieles außerhalb (im RAM) abläuft ... also reinladen/vergleichen und das kann der Compiler selber schon ganz gut. |
Re: Punkt innerhalb Kreis?
Hi,
R2009 Zitat:
Bezieht sich auf die Parameter die übergeben werden. Die Ausführungszeit ändert sich wenn z.B. wenn der zu testende Punkt innerhalb des Kreises liegt relativ zu dem ausserhalb liegenden Punkt. Viele Grüsse! |
Re: Punkt innerhalb Kreis?
Zitat:
bei den Integerversionen sollte sich nicht groß was ändern, da egal wie die Werte sind die Berechnungen "etwa" gleich schnell sein sollten. :gruebel: |
Re: Punkt innerhalb Kreis?
Hi himitsu,
bei der ASM Version hab ichs nicht probiert. Ansonsten bei allen! Viele Grüsse. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:38 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz