TIP: Click on subject to list as thread! ANSI
echo: os2prog
to: Rob Landley
from: Henk den Adel
date: 1994-11-15 22:02:04
subject: Need sqrt() algorithm

Hi Rob,

On  Rob Landley wrote to Rob Basler:

 RL> To be serious, the answer you are looking for involves the application
 RL> of the Newton-Raphsen Iteration. 

The iterative approximation, as posted by Ronald Van Iwaarden:
x(new) = {x(old) +a/x(old)}/2 is Newton Raphson in its pure form.

x(new) =  x(old) - f(x(old))/f'(x(old))   (NR)

with f'(x) = df/dx.

f(x) = x*x - a, so f'(x) = 2x. If you fill in these results in (NR), you get:

x(new) = x(old) + x(old)*x(old)/{2x(old)} - a / {2x(old)} =
         x(old) - (1/2) x(old) + a/{2x(old)} = {x(old) + a/x(old)} /2

QED.


 RL>         E=.001 'DESIRED ACCURACY

Robs shoot2kill problem concearns pixels on a screen, so the result is
likely to be in unsigned integers. Since the difference between n*n and
(n+1)*(n+1) is 2n+1, it will be sufficient to ask whether abs(f(n)) <
2*n as stopping criterion. 


73 es cuagn,
 Henk

--- The-Box Point 0.15+ PC


* Origin: Lobster BBS for programmers +31 (0)104271432 (2:286/300.1)
SEEN-BY: 12/2442 54/54 620/243 624/50 632/348 640/820 690/660 711/409 410 413
SEEN-BY: 711/430 807 808 809 934 942 949 712/353 623 713/888 800/1
@PATH: 286/3 10 280/0 801 24/24 396/1 3615/50 229/2 12/2442
@PATH: 711/409 54/54 711/808 809 934

SOURCE: echomail via fidonet.ozzmosis.com

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.