Liczenie pierwiastka kwadratowego w asm

Loading thread data ...

najprosciej chyba rozlozyc na szereg....

Reply to
Greg
Reply to
Piotr Wyderski
Reply to
invalid unparseable
Reply to
Piotr Wyderski

I monotoniczna ! I pod warunkiem ze sie prosto sprawdza.

Do liczenia pierwiastka jest swietny wzor iteracyjny x{n+1}=(x{n}+W/x{n})/2 Ale niestety - dobry jest na zmiennym przecinku, i trzeba miec dzielenie.

P.S. Jesli nie masz szybkiego sprzetowego mnozenia, to jeszcze mozna skorzystac ze (x+y)^2=x^2+2xy+y^2. Jak y w postaci binarnej ma tylko jeden bit, to wzorek robi sie prosty, x^2 znasz z poprzedniego kroku..

J.

Reply to
J.F.

Sun, 11 Jan 2004 23:59:06 +0100, na pl.misc.elektronika, Paweł napisał(a):

To się chyba nazywa metoda Newtona-Raphsona

Dokładny opis algorytmu i asm dla PICa znajdziesz tu:

formatting link
)-| Krzysztof

Reply to
vqx

Tam pisze ze to sie NIE nazywa Newtona-Raphsona :-)

J.

Reply to
J.F.

On praktycznie podwaja ilosc bitow dokladnych za kazdym razem. Ale przydaloby sie miec choc ze dwa dokladne w pierwszym przyblizeniu :-)

J.

Reply to
J.F.

Mon, 12 Jan 2004 14:03:48 +0100, na pl.misc.elektronika, J.F. napisał(a):

Holmesie - jesteś genialny. Faktycznie jest napisane na samym początku, ale kto by tam wstępy czytał - do tego w obcym języku :-)

pozdrawiam Watson

Reply to
vqx

A nawet teoretycznie. :-) To jeden z najszybciej zbieznych szeregow aproksymujacych pierwiastek. Niestety ma ukryty duzy czynnik staly i korzysta z dosc skomplikowanych procedur, wiec inicjatorowi watku na niewiele sie zda.

Pozdrawiam Piotr Wyderski

Reply to
Piotr Wyderski
Reply to
Piotr Wyderski
Reply to
Piotr Wyderski

szumne slowa "lookup table". Z mojego starego programu

; w=c*2^m, when c is in range 1..2 ; x1=1.19*2^(m/2) for even m (1.19 is to be sqrt(sqrt(1)*sqrt(2)) ; 1.68*2^( (m-1)/2 ) for odd m (1.68 is sqrt(sqrt(2)*(sqrt(4)) ; then apply formula 3 times, and result is accurate to 24 bit

Czyli nawet nie trzeba dwoch bitow sprawdzac :-) Ale to bylo dla zmiennego przecinka.

Duzo zalezy ile trwa dzielenie a ile mnozenie i reszty architektury. Moga byc procki gdzie policzenie ile jest zerowych bitow z przodu wraz wyliczeniem wartosci poczatkowej potrwa niewiele krocej niz obliczenie pierwiastka twoim pomyslem, a potem 3 dzielenia beda trwaly wiecznosc.. a na Z80 bym raczej stawial N-R.

J.

Reply to
J.F.

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.