28c28
< __FBSDID("$FreeBSD: head/lib/msun/src/s_cexpf.c 226413 2011-10-16 05:37:01Z das $");
---
> __FBSDID("$FreeBSD: head/lib/msun/src/s_cexpf.c 226597 2011-10-21 06:27:56Z das $");
37,38c37
< cexp_ovfl = 0x43400074, /* (MAX_EXP - MIN_DENORM_EXP) * ln2 */
< k = 235; /* constant for reduction */
---
> cexp_ovfl = 0x43400074; /* (MAX_EXP - MIN_DENORM_EXP) * ln2 */
40,42d38
< static const float
< kln2 = 162.88958740f; /* k * ln2 */
<
48d43
< int scale;
80,83c75
< * overflow in expf(x). We use exp(x) = exp(x - kln2) * 2**k,
< * carefully chosen to minimize |exp(kln2) - 2**k|. We also
< * scale the exponent of exp(x) to MANT_DIG to avoid loss of
< * accuracy due to underflow if sin(y) is tiny.
---
> * overflow in expf(x).
85,90c77
< exp_x = expf(x - kln2);
< GET_FLOAT_WORD(hx, exp_x);
< SET_FLOAT_WORD(exp_x, (hx & 0x7fffff) | ((0x7f + 23) << 23));
< scale = (hx >> 23) - (0x7f + 23) + k;
< return (cpackf(scalbnf(cosf(y) * exp_x, scale),
< scalbnf(sinf(y) * exp_x, scale)));
---
> return (__ldexp_cexpf(z, 0));
< __FBSDID("$FreeBSD: head/lib/msun/src/s_cexpf.c 226413 2011-10-16 05:37:01Z das $");
---
> __FBSDID("$FreeBSD: head/lib/msun/src/s_cexpf.c 226597 2011-10-21 06:27:56Z das $");
37,38c37
< cexp_ovfl = 0x43400074, /* (MAX_EXP - MIN_DENORM_EXP) * ln2 */
< k = 235; /* constant for reduction */
---
> cexp_ovfl = 0x43400074; /* (MAX_EXP - MIN_DENORM_EXP) * ln2 */
40,42d38
< static const float
< kln2 = 162.88958740f; /* k * ln2 */
<
48d43
< int scale;
80,83c75
< * overflow in expf(x). We use exp(x) = exp(x - kln2) * 2**k,
< * carefully chosen to minimize |exp(kln2) - 2**k|. We also
< * scale the exponent of exp(x) to MANT_DIG to avoid loss of
< * accuracy due to underflow if sin(y) is tiny.
---
> * overflow in expf(x).
85,90c77
< exp_x = expf(x - kln2);
< GET_FLOAT_WORD(hx, exp_x);
< SET_FLOAT_WORD(exp_x, (hx & 0x7fffff) | ((0x7f + 23) << 23));
< scale = (hx >> 23) - (0x7f + 23) + k;
< return (cpackf(scalbnf(cosf(y) * exp_x, scale),
< scalbnf(sinf(y) * exp_x, scale)));
---
> return (__ldexp_cexpf(z, 0));