math.floats: Fix the output of /mod and add some unit tests. Fixes #803.

db4
Doug Coleman 2013-03-20 17:42:47 -07:00
parent b981973938
commit 5bf5cb3446
2 changed files with 10 additions and 1 deletions

View File

@ -93,3 +93,12 @@ unit-test
[ 5.0 ] [ 3 5.0 max ] unit-test
[ 3 ] [ 3 5.0 min ] 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

View File

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