math.floats: fix M\ float /mod.

db4
John Benediktsson 2013-03-29 08:48:28 -07:00
parent e5f9696aae
commit 5793229dae
2 changed files with 10 additions and 5 deletions

View File

@ -96,14 +96,19 @@ unit-test
{ 39 0x1.999999999998ap-4 } [ 4.0 .1 /mod ] unit-test
{ 38 0x1.9999999999984p-4 } [ 3.9 .1 /mod ] unit-test
{ 39 0x1.999999999998ap-4 } [ 4.0 -.1 /mod ] unit-test
{ 38 0x1.9999999999984p-4 } [ 3.9 -.1 /mod ] unit-test
{ -39 0x1.999999999998ap-4 } [ 4.0 -.1 /mod ] unit-test
{ -38 0x1.9999999999984p-4 } [ 3.9 -.1 /mod ] unit-test
{ 39 -0x1.999999999998ap-4 } [ -4.0 -.1 /mod ] unit-test
{ 38 -0x1.9999999999984p-4 } [ -3.9 -.1 /mod ] unit-test
{ 39 -0x1.999999999998ap-4 } [ -4.0 .1 /mod ] unit-test
{ 38 -0x1.9999999999984p-4 } [ -3.9 .1 /mod ] unit-test
{ -39 -0x1.999999999998ap-4 } [ -4.0 .1 /mod ] unit-test
{ -38 -0x1.9999999999984p-4 } [ -3.9 .1 /mod ] unit-test
{ 0.5 } [ 3.5 0.75 mod ] unit-test
{ -0.5 } [ -3.5 0.75 mod ] unit-test
{ -0.5 } [ -3.5 -0.75 mod ] unit-test
{ 0.5 } [ 3.5 -0.75 mod ] unit-test
{ 4 0.5 } [ 3.5 0.75 /mod ] unit-test
{ -4 -0.5 } [ -3.5 0.75 /mod ] unit-test
{ 4 -0.5 } [ -3.5 -0.75 /mod ] unit-test
{ -4 0.5 } [ 3.5 -0.75 /mod ] unit-test

View File

@ -38,7 +38,7 @@ M: float /i float/f >integer ; inline
M: real abs dup 0 < [ neg ] when ; inline
M: real /mod dupd mod [ [ - ] [ /i ] bi ] keep ; inline
M: real /mod 2dup mod [ swap [ - ] [ /i ] bi* ] keep ; inline
M: float fp-special?
double>bits -52 shift 0x7ff [ bitand ] keep = ; inline