LDBL_MAX_EXP
#define LDBL_ADJ (LDBL_MAX_EXP - 2 + ((LDBL_MANT_DIG - 1) % 4))
LDBL_MAX_EXP - LDBL_MANT_DIG, /* emax */
be = p->ext_exp - (LDBL_MAX_EXP - 1) - (LDBL_MANT_DIG - 1);
#if LDBL_MAX_EXP > 999999
if(exptx==BIAS+LDBL_MAX_EXP) {
if(expty==BIAS+LDBL_MAX_EXP) {
if(expty==BIAS+LDBL_MAX_EXP)
if ((exptx==BIAS+LDBL_MAX_EXP &&
(expty==BIAS+LDBL_MAX_EXP &&
if (u.bits.ext_exp == LDBL_MAX_EXP * 2 - 1)
#if LDBL_MAX_EXP > 1024
#if LDBL_MAX_EXP > 16384
#define BIAS (LDBL_MAX_EXP - 1)
#define BIAS (LDBL_MAX_EXP - 1)
if (k == BIAS + LDBL_MAX_EXP)
#define BIAS (LDBL_MAX_EXP - 1)
if (ix == BIAS + LDBL_MAX_EXP) {
#define EXPMASK (BIAS + LDBL_MAX_EXP)
es = LDBL_MAX_EXP - 1 + k;
es = LDBL_MAX_EXP - 1 + k + 10000;
if (k == LDBL_MAX_EXP)
#define BIAS (LDBL_MAX_EXP - 1)
((hx>>48) == BIAS + LDBL_MAX_EXP) || /* or x not finite */
((hy>>48) == BIAS + LDBL_MAX_EXP &&
e = ((ix0>>48)&0x7fff) - LDBL_MAX_EXP + 1;
#define BIAS (LDBL_MAX_EXP - 1)
(ux.bits.ext_exp == BIAS + LDBL_MAX_EXP) || /* or x not finite */
(uy.bits.ext_exp == BIAS + LDBL_MAX_EXP &&
#define BIAS (LDBL_MAX_EXP - 1)
#define BIAS (LDBL_MAX_EXP - 1)
if (k == BIAS + LDBL_MAX_EXP)
if (ix == BIAS + LDBL_MAX_EXP) {
es = LDBL_MAX_EXP - 1 + k;
es = LDBL_MAX_EXP - 1 + k + 10000;
if (k == LDBL_MAX_EXP)
#define BIAS (LDBL_MAX_EXP - 1)
#define EXPMASK (BIAS + LDBL_MAX_EXP)
#define BIAS (LDBL_MAX_EXP - 1)
(esx == BIAS + LDBL_MAX_EXP) || /* or x not finite */
(esy == BIAS + LDBL_MAX_EXP &&
e = (es&0x7fff) - LDBL_MAX_EXP + 1;
if(expt == BIAS + LDBL_MAX_EXP &&
#if LDBL_MAX_EXP != 0x4000
if (u.bits.ext_exp < (LDBL_MAX_EXP << 1) - 1) /* normal */
return ((long double)(u.bits.ext_exp - LDBL_MAX_EXP + 1));
#if LDBL_MAX_EXP != 0x4000
#define BIAS (LDBL_MAX_EXP - 1)
if (ex == BIAS + LDBL_MAX_EXP)
#if LDBL_MAX_EXP != 0x4000
test_overflow(LDBL_MAX_EXP);
test_precision(LDBL_MAX_EXP, LDBL_MANT_DIG);
test_precision(LDBL_MAX_EXP, DBL_MANT_DIG);
for (i = LDBL_MIN_EXP - LDBL_MANT_DIG; i < LDBL_MAX_EXP; i++) {
for (e = LDBL_MIN_EXP - LDBL_MANT_DIG; e < LDBL_MAX_EXP; e++) {
for (e = LDBL_MIN_EXP - LDBL_MANT_DIG; e <= LDBL_MAX_EXP; e++) {
for (e = LDBL_MIN_EXP - LDBL_MANT_DIG; e <= LDBL_MAX_EXP - 1; e++) {
test2(atan2l, ldexpl(1.0, 100 - LDBL_MAX_EXP),
ldexpl(1.0, LDBL_MAX_EXP - 100), 0.0, FE_INEXACT | FE_UNDERFLOW);
test2(atan2l, -ldexpl(1.0, 100 - LDBL_MAX_EXP),
ldexpl(1.0, LDBL_MAX_EXP - 100), -0.0, FE_INEXACT | FE_UNDERFLOW);
test2(atan2l, ldexpl(1.0, 100 - LDBL_MAX_EXP),
-ldexpl(1.0, LDBL_MAX_EXP - 100), pi, FE_INEXACT);
test2(atan2l, -ldexpl(1.0, 100 - LDBL_MAX_EXP),
-ldexpl(1.0, LDBL_MAX_EXP - 100), -pi, FE_INEXACT);
test2(atan2l, ldexpl(1.0, LDBL_MAX_EXP - 100),
ldexpl(1.0, 100 - LDBL_MAX_EXP), pi / 2, FE_INEXACT);
test2(atan2l, -ldexpl(1.0, LDBL_MAX_EXP - 100),
ldexpl(1.0, 100 - LDBL_MAX_EXP), -pi / 2, FE_INEXACT);
test2(atan2l, ldexpl(1.0, LDBL_MAX_EXP - 100),
-ldexpl(1.0, 100 - LDBL_MAX_EXP), pi / 2, FE_INEXACT);
test2(atan2l, -ldexpl(1.0, LDBL_MAX_EXP - 100),
-ldexpl(1.0, 100 - LDBL_MAX_EXP), -pi / 2, FE_INEXACT);
for (i = LDBL_MIN_EXP - LDBL_MANT_DIG; i < LDBL_MAX_EXP; i++) {
ldbl_max = ldexpl(1.0 - ldbl_eps / 2, LDBL_MAX_EXP);