[gforth] / gforth / float.fs  

gforth: gforth/float.fs

Diff for /gforth/float.fs between version 1.53 and 1.54

version 1.53, Mon Dec 31 18:40:24 2007 UTC version 1.54, Sun May 24 17:36:36 2009 UTC
Line 233 
Line 233 
         fnegate f~rel          fnegate f~rel
     THEN ;      THEN ;
   
   -0e fp@ c@ $80 = [if] 0 [else] 7 [endif] constant fsign-offset
   
   : fcopysign ( r1 r2 -- r3 ) \ gforth
   \G r3 takes its absolute value from r1 and its sign from r2
       \ !! implementation relies on IEEE DP format
       fp@ dup fsign-offset + dup c@ $80 and >r ( r1 r2 addr-r1sign )
       float + dup c@ $7f and r> or swap c!
       fdrop ;
   
 \ proposals from Krishna Myeni in <cjsp2d$47l$1@ngspool-d02.news.aol.com>  \ proposals from Krishna Myeni in <cjsp2d$47l$1@ngspool-d02.news.aol.com>
 \ not sure if they are a good idea  \ not sure if they are a good idea
   
 : FTRUNC ( r1 -- r2 )  : ftrunc ( r1 -- r2 ) \ X:ftrunc
     \ round towards 0      \ round towards 0
     \ !! should be implemented properly      fdup fabs floor fswap fcopysign ;
     F>D D>F ;  
   
 : FMOD ( r1 r2 -- r )  : FMOD ( r1 r2 -- r )
     \ remainder of r1/r2      \ remainder of r1/r2
     FOVER FOVER F/ ftrunc F* F- ;      FOVER FOVER F/ ftrunc F* F- ;
   


Generate output suitable for use with a patch program
Legend:
Removed from v.1.53  
changed lines
  Added in v.1.54

CVS Admin

Powered by ViewCVS 1.0-dev
(Powered by ViewCVS)

ViewCVS and CVS Help