1 #define MAX_DOUBLE 1.7976931348623158e+308
2 #define MIN_DOUBLE 2.2250738585072014e-308
4 double _xnextafter( double __x, double __y )
6 double_t *x = ( double_t *)&__x;
9 double_t *e = (double_t *)&__e;
12 if ( _isnan(__x) || _isinf(__x) )
19 // don't go to infinity just by adding
21 if ( _isinf(__y) && fabs(__x) >= MAX_DOUBLE )
24 if ( !_isinf(__y) && fabs(__x - __y) <= MIN_DOUBLE )
32 if ( x->exponent >= 53 )
33 e->exponent = x->exponent - 52;
37 if ( fabs(__x) < fabs(__y) )