4 /* modf suitable for IEEE double-precision */
7 #define SIGN 0x80000000
22 modf(double d, double *ip)
33 e = (x.i.ms >> SHIFT) & MASK;
34 if(e == MASK || e == 0){
36 *ip = (d > 0)? HUGE_VAL : -HUGE_VAL;
41 x.i.ms &= ~(0x1fffffL >> e);
45 x.i.ls &= ~(0x7fffffffL >> (e-SHIFT-2));