19 #define DBL_MANT_DIG 53 21 #define BIG_CRITERIA_BIT (1<<DBL_MANT_DIG/2) 22 #if BIG_CRITERIA_BIT > 0 23 #define BIG_CRITERIA (1.0*BIG_CRITERIA_BIT) 25 #define BIG_CRITERIA (1.0*(1<<DBL_MANT_DIG/4)*(1<<(DBL_MANT_DIG/2+1-DBL_MANT_DIG/4))) 27 #define SMALL_CRITERIA_BIT (1<<(DBL_MANT_DIG/3)) 28 #if SMALL_CRITERIA_BIT > 0 29 #define SMALL_CRITERIA (1.0/SMALL_CRITERIA_BIT) 31 #define SMALL_CRITERIA (1.0*(1<<DBL_MANT_DIG/4)*(1<<(DBL_MANT_DIG/3+1-DBL_MANT_DIG/4))) 45 x += sqrt((x + 1) * (x - 1));
60 z *= 1 + x2 * (-1.0/6.0 + x2 * 3.0/40.0);
66 z = log(z + sqrt(z * z + 1));
81 z = log(z > 1 ? -1 : (1 + z) / (1 - z)) / 2;
RUBY_EXTERN int isinf(double)