Question

Je ne sais pas grand-chose sur le montage, mais je suis assez sûr qu'il ya des instructions de racine carrée sur x86? Je suis en train d'obtenir une fonction racine carrée de bien travailler dans la mousse et celui que j'ai trouvé en quelque sorte s'enlise quand je le lance à plusieurs reprises.

: sqrt-closer ( square guess -- square guess adjustment)
2dup / over - 2 /
;

: sqrt ( square -- root )
1 begin
sqrt-closer dup
while + repeat
drop nip ;
Était-ce utile?

La solution

Il y a une instruction de racine carrée en virgule flottante ( FSQRT ). Ceci est assez rapide, même si vous avez seulement besoin d'un nombre entier racine carrée.

Autres conseils

Regardez ici:

http://www.azillionmonkeys.com/qed/sqroot.html

Tout ce que vous avez toujours voulu savoir sur les racines carrées, mais ont peur de demander. Contient une implémentation en langage assembleur x86.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top