Circles of given radius through two points: Difference between revisions
Content added Content deleted
m (→{{header|REXX}}: added/changed whitespace and comments, simplified a function.) |
m (→{{header|REXX}}: changed extra digits and optimized the sqrt function, added a comment.) |
||
Line 1,575: | Line 1,575: | ||
/*────────────────────────────────────────────────────────────────────────────*/ |
/*────────────────────────────────────────────────────────────────────────────*/ |
||
sqrt: procedure; parse arg x; if x=0 then return 0; d=digits(); i=; m.=9 |
sqrt: procedure; parse arg x; if x=0 then return 0; d=digits(); i=; m.=9 |
||
numeric digits 9; if x<0 then do; x=-x; i='i'; end |
numeric digits 9; numeric form; h=d+6; if x<0 then do; x=-x; i='i'; end |
||
parse value format(x,2,1,,0) 'E0' with g 'E' _ .; g=g*.5' |
parse value format(x,2,1,,0) 'E0' with g 'E' _ .; g=g*.5'e'_%2 |
||
do j=0 while h>9; m.j=h; h=h%2+1; end /*j*/ |
do j=0 while h>9; m.j=h; h=h%2+1; end /*j*/ |
||
do k=j+5 to 0 by -1; numeric digits m.k; g= |
do k=j+5 to 0 by -1; numeric digits m.k; g=(g+x/g)*.5; end /*k*/ |
||
numeric digits d; return (g/1)i</lang> |
numeric digits d; return (g/1)i /*make complex if X < 0.*/</lang> |
||
'''output''' |
'''output''' |
||
<pre> |
<pre> |