Wie sqrt implementieren?

Hallo,
ich arbeite mit einem Compiler für einen Microcontroller in dem math.h nicht implementiert ist, und ich muss Wurzeln berechnen, folglich eine Funktion sqrt selbst implementieren. Hat jemand eine Idee oder kennt sich aus?
Danke, Martin

Hallo,

du kannst eine Iteration verwenden. Wenn du die Wurzel von x berechnen willst, ist
w_neu = 1/2 *(x/w_alt + w_alt)

(guggsst du zum Beispiel hier: http://www.erg.slf.th.schule.de/informatik/d/ ). Es gibt sicher bessere Verfahren…

Gruesse,
Moritz

Hallo,
ich arbeite mit einem Compiler für einen Microcontroller in
dem math.h nicht implementiert ist, und ich muss Wurzeln
berechnen, folglich eine Funktion sqrt selbst implementieren.

Neben der schon erwähnten Newtonschen Näherung gibt es da noch einen kleinen alten Trick, der allerdings in der Form für 32bit-Floats ausgelegt ist und für andere Formate eine andere „Magic Number“ bräuchte:

http://www.gamedev.net/community/forums/topic.asp?to…

Hallo Martin,

am einfachsten suchst du dir die Sourcen einer bewährten Open-Source-Library heraus und schaust nach, wie es dort gemacht wurde.

Gruss Reinhard

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]