Talk:Entropy: Difference between revisions
Content added Content deleted
m (→REXX (log2): removed some blank lines. -- ~~~~) |
|||
Line 57: | Line 57: | ||
::: Here's a version of the (REXX) LOG2 function, unrolled and expatiated: -- [[User:Gerard Schildberger|Gerard Schildberger]] ([[User talk:Gerard Schildberger|talk]]) 23:47, 28 May 2013 (UTC) |
::: Here's a version of the (REXX) LOG2 function, unrolled and expatiated: -- [[User:Gerard Schildberger|Gerard Schildberger]] ([[User talk:Gerard Schildberger|talk]]) 23:47, 28 May 2013 (UTC) |
||
<lang rexx>/*──────────────────────────────────LOG2 subroutine───────────────────────────*/ |
<lang rexx>/*──────────────────────────────────LOG2 subroutine───────────────────────────*/ |
||
log2: procedure |
log2: procedure; parse arg x 1 xx |
||
parse arg x 1 xx |
|||
ig= x>1.5 |
ig= x>1.5 |
||
is= 1 - 2*(ig\==1) |
is= 1 - 2*(ig\==1) |
||
Line 64: | Line 63: | ||
e=2.7182818284590452353602874713526624977572470936999595749669676277240766303535 |
e=2.7182818284590452353602874713526624977572470936999595749669676277240766303535 |
||
ii=0 |
ii=0 |
||
do while ig & xx>1.5 | \ig & xx<.5 |
do while ig & xx>1.5 | \ig & xx<.5 |
||
_=e |
_=e |
||
do j=-1 |
do j=-1 |
||
Line 74: | Line 71: | ||
izz=iz |
izz=iz |
||
end /*j*/ |
end /*j*/ |
||
xx=izz |
xx=izz |
||
ii=ii + is* 2**j |
ii=ii + is* 2**j |
||
end /*while*/ |
end /*while*/ |
||
x=x * e**-ii -1 |
x=x * e**-ii -1 |
||
z=0 |
z=0 |
||
_=-1 |
_=-1 |
||
p=z |
p=z |
||
do k=1 |
do k=1 |
||
_=-_*x |
_=-_*x |
||
Line 90: | Line 84: | ||
p=z |
p=z |
||
end /*k*/ |
end /*k*/ |
||
r=z+ii |
r=z+ii |
||
if arg()==2 then return r |
if arg()==2 then return r |
||
return r / log2(2,0)</lang> |
return r / log2(2,0)</lang> |