Gast
#734218
Hi, wie kann ich aus einem unsigned int die Wurzel ziehen? Ich finde nur Routinen für Float.
|
Anzeige
|
AVR: Wurzel von Integer sqrt(uint16)
Gast
#734218
Hi, wie kann ich aus einem unsigned int die Wurzel ziehen? Ich finde nur Routinen für Float.
Gast
#734223
Google mal nach "sqrt integer" und du wirst schnell fündig.
Gast
#734309
Stichwort : Schrifliches Wurzelziehen
Gast
#734538
Ich hab was gefunden das ursprünglich für Long gedacht war. Ich hab es auf Int gekürzt. Hier das Ergebnis.
Hier gibt es meiner Meinung nach sehr schnelle und vor allem kleine Wurzelfunktionen für 16 und 32bit in Assembler (und noch eine Menge andere nützliche Ding): http://elm-chan.org/cc_e.html
Gast
#734621
Laut Simulator ist meine Version schneller. Die Routine von Chan braucht mindestens 177 Takte (habe es nicht getestet). Meine Version braucht laut Simulator 145 Taktzyklen inkl Sprung in die Routine, Ret und einer Addition +1. Also diese komplette Zeile
Dafür ist sie mit 33 Words aber etwa um den Faktor 10 kleiner als deine. Entweder schnell oder klein. Beides auf einmal geht leider nur selten.
Gast
#734647
Das ist klar. Ich brauch halt die Tabelle. Aber es soll ja auch nicht grad in einen Tiny13 der eh schon knapp voll ist Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|