4 double scalbn(double x, int n)
6 union {double f; uint64_t i;} u;
18 } else if (n < -1022) {
19 /* make sure final n < -53 to avoid double
20 rounding in the subnormal range */
21 y *= 0x1p-1022 * 0x1p53;
24 y *= 0x1p-1022 * 0x1p53;
30 u.i = (uint64_t)(0x3ff+n)<<52;