LDBL_MAX_EXP
int offset = 4 * ndigits + LDBL_MAX_EXP - 4 - LDBL_MANT_DIG;
#define LDBL_ADJ (LDBL_MAX_EXP - 2)
LDBL_MAX_EXP - LDBL_MANT_DIG, /* emax */
be = u.bits.exp - (LDBL_MAX_EXP - 1) - (LDBL_MANT_DIG - 1);
#if LDBL_MAX_EXP > 999999
#define BIAS (LDBL_MAX_EXP - 1)
#define BIAS (LDBL_MAX_EXP - 1)
#define BIAS (LDBL_MAX_EXP - 1)
if (ix == BIAS + LDBL_MAX_EXP) {
#define BIAS (LDBL_MAX_EXP - 1)
#define EXPMASK (BIAS + LDBL_MAX_EXP)
v.xbits.expsign = LDBL_MAX_EXP - 1 + k;
v.xbits.expsign = LDBL_MAX_EXP - 1 + k + 10000;
if (k == LDBL_MAX_EXP)
if (ix == BIAS + LDBL_MAX_EXP) {
if (k == LDBL_MAX_EXP)
if (ix == BIAS + LDBL_MAX_EXP) {
if (k == LDBL_MAX_EXP)
#if LDBL_MAX_EXP != 0x4000
#define BIAS (LDBL_MAX_EXP - 1)
#define BIAS (LDBL_MAX_EXP - 1)
#define BIAS (LDBL_MAX_EXP - 1)
if (ix == BIAS + LDBL_MAX_EXP) {
if (k == LDBL_MAX_EXP)
#define BIAS (LDBL_MAX_EXP - 1)
if (k == LDBL_MAX_EXP)
if (ix == BIAS + LDBL_MAX_EXP) {
if (k == LDBL_MAX_EXP)
if (ix == BIAS + LDBL_MAX_EXP) {
#define BIAS (LDBL_MAX_EXP - 1)
if (ix <= BIAS + LDBL_MAX_EXP / 2 - CUTOFF)
#if LDBL_MAX_EXP != 0x4000
#if LDBL_MAX_EXP != 0x4000
#define BIAS (LDBL_MAX_EXP - 1)
if ((exptx==BIAS+LDBL_MAX_EXP &&
(expty==BIAS+LDBL_MAX_EXP &&
if(exptx==BIAS+LDBL_MAX_EXP) {
if(expty==BIAS+LDBL_MAX_EXP) {
if(expty==BIAS+LDBL_MAX_EXP)
#if LDBL_MAX_EXP != 0x4000
#define BIAS (LDBL_MAX_EXP - 1)
#if LDBL_MAX_EXP != 0x4000
#define BIAS (LDBL_MAX_EXP - 1)
#define BIAS (LDBL_MAX_EXP - 1)
(ux.bits.exp == BIAS + LDBL_MAX_EXP) || /* or x not finite */
(uy.bits.exp == BIAS + LDBL_MAX_EXP &&
#define MAX_EXP LDBL_MAX_EXP
#if LDBL_MAX_EXP != 0x4000
#define BIAS (LDBL_MAX_EXP - 1)
if (u.bits.exp == LDBL_MAX_EXP * 2 - 1)
#if LDBL_MAX_EXP > 1024
#if LDBL_MAX_EXP > 16384
#if LDBL_MAX_EXP != 0x4000
#define BIAS (LDBL_MAX_EXP - 1)
if(expt == BIAS + LDBL_MAX_EXP &&
#define BIAS (LDBL_MAX_EXP - 1)
if (k == BIAS + LDBL_MAX_EXP)
int e = u.bits.exp - LDBL_MAX_EXP + 1;
#define MAX_EXP LDBL_MAX_EXP
#if LDBL_MAX_EXP != 0x4000
int e = u.bits.exp - LDBL_MAX_EXP + 1;
#if LDBL_MAX_EXP != 0x4000
} else if (u.bits.exp < (LDBL_MAX_EXP << 1) - 1)
return (u.bits.exp - LDBL_MAX_EXP + 1);
if (u.bits.exp < (LDBL_MAX_EXP << 1) - 1) /* normal */
return ((long double)(u.bits.exp - LDBL_MAX_EXP + 1));
e = ux.bits.exp - LDBL_MAX_EXP + 1;
#if LDBL_MAX_EXP != 0x4000
#if LDBL_MAX_EXP != 0x4000
#define LDBL_INFNAN_EXP (LDBL_MAX_EXP * 2 - 1)
#define BIAS (LDBL_MAX_EXP - 1)
(ux.bits.exp == BIAS + LDBL_MAX_EXP) || /* or x not finite */
(uy.bits.exp == BIAS + LDBL_MAX_EXP &&
#if LDBL_MAX_EXP != 0x4000
#define BIAS (LDBL_MAX_EXP - 1)
if (ex == BIAS + LDBL_MAX_EXP)
#if (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
#if LDBL_MAX_EXP != 0x4000
#define BIAS (LDBL_MAX_EXP - 1)
int e = u.bits.exp - LDBL_MAX_EXP + 1;
test_overflow(LDBL_MAX_EXP);
test_precision(LDBL_MAX_EXP,
for (int 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);