MAX_EXP
#define ESW(exp) (MAX_EXP - 1 + (exp)) /* expsign word */
if(ha > ESW(MAX_EXP/2-12)) { /* a>2**(MAX_EXP/2-12) */
if(ha >= ESW(MAX_EXP)) { /* Inf or NaN */
if (hb >= ESW(MAX_EXP) && manh == LDBL_NBIT && manl == 0) w = b;
ha -= DESW(MAX_EXP/2+88); hb -= DESW(MAX_EXP/2+88);
k += MAX_EXP/2+88;
if(hb < ESW(-(MAX_EXP/2-12))) { /* b < 2**-(MAX_EXP/2-12) */
SET_HIGH_WORD(t1,ESW(MAX_EXP-2)); /* t1=2^(MAX_EXP-2) */
k -= MAX_EXP-2;
ha += DESW(MAX_EXP/2+88);
hb += DESW(MAX_EXP/2+88);
k -= MAX_EXP/2+88;
if (kx == MAX_EXP || ky == MAX_EXP)
if (kx >= MAX_EXP - 1)
(MAX_EXP - 2) * ln2_lo + (MAX_EXP - 2) * ln2_hi, v));
if (kx >= (MAX_EXP - 1) / 2)
if (kx == MAX_EXP || ky == MAX_EXP)
if (kx >= MAX_EXP - 1)
(MAX_EXP - 2) * ln2f_lo + (MAX_EXP - 2) * ln2f_hi, v));
if (kx >= (MAX_EXP - 1) / 2)
if (kx >= MAX_EXP - 1)
(MAX_EXP - 2) * ln2l_lo + (MAX_EXP - 2) * ln2_hi, v));
if (kx >= (MAX_EXP - 1) / 2)
if (kx == MAX_EXP || ky == MAX_EXP)