Anonymous user
Minkowski question-mark function: Difference between revisions
m
→{{header|REXX}}: added some comments.
m (→{{header|REXX}}: added/changed whitespace and comments.) |
m (→{{header|REXX}}: added some comments.) |
||
Line 343:
<lang rexx>/*REXX program uses the Minkowski question─mark function to convert a continued fraction*/
numeric digits 20 /*use enough dec. digits for precision.*/
say fmt(
say fmt(
say fmt(
exit 0 /*stick a fork in it, we're all done. */
/*──────────────────────────────────────────────────────────────────────────────────────*/
floor: procedure; parse arg x; _= trunc(x); return _ - (x<0) * (x\=_)
fmt: procedure: parse arg z; return right( format(z, , digits() - 2, 0), digits() +
/*──────────────────────────────────────────────────────────────────────────────────────*/
mink: procedure: parse arg x; p= x % 1;
q= 1; s= 1; m= 0; n= 0; d= 1;
r= p + 1
do forever; d= d
if d=0 then leave
m= p + r
Line 367:
return y + d
/*──────────────────────────────────────────────────────────────────────────────────────*/
minkI: procedure; parse arg x; p= floor(x); if x>1 | x<0 then return p + minkI(x-p)
if x=1 | x=0 then return x
curr= 0; count= 1; maxIter= 200; $=
#= words($)
Line 398:
1.666666666666666963 1.666666666666666667
-0.565741454089335118 -0.565741454089335118
0.718281828000000011 0.
</pre>
|