| TIP: Click on subject to list as thread! | ANSI |
| echo: | |
|---|---|
| to: | |
| from: | |
| date: | |
| 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™.