63 static FPI fpi = {53, 1 - 1023 - 53 + 1, 2046 - 1023 - 53 + 1, 1,
SI};
74 k =
strtodg(s, sp, &fpi, &exp, bits);
80 u->d[0] = u->d[1] = 0.;
84 u->d[0] = u->d[1] = 0.;
85 #ifdef Sudden_Underflow 89 u->L[_0] = 0x80100000L;
91 u->L[2 + _0] = 0x100000L;
105 u->L[_0] = (bits[1] & (unsigned)~0x100000) | (unsigned)((exp + 0x3ff + 52) << 20);
116 #ifdef Sudden_Underflow 117 if((u->L[_0] & 0x7ff00000) < 0x3500000)
119 u->L[2 + _0] = u->L[_0] + 0x3500000;
120 u->L[2 + _1] = u->L[_1];
121 u->d[1] +=
ulp(u->d[1]);
122 u->L[2 + _0] -= 0x3500000;
123 if(!(u->L[2 + _0] & 0x7ff00000))
131 u->d[1] = u->d[0] +
ulp(u->d[0]);
135 #ifdef Sudden_Underflow 136 if((u->L[_0] & 0x7ff00000) < 0x3500000)
138 u->L[_0] += 0x3500000;
140 u->L[_0] -= 0x3500000;
141 if(!(u->L[_0] & 0x7ff00000))
157 u->L[_0] = u->L[2 + _0] = sign | 0x7ff00000;
158 u->L[_1] = u->L[2 + _1] = 0;
163 u->L[2 + _0] = 0xffefffffL;
164 u->L[2 + _1] = 0xffffffffL;
168 u->L[_0] = 0x7fefffffL;
169 u->L[_1] = 0xffffffffL;
175 u->L[0] = u->L[2] = d_QNAN0;
176 u->L[1] = u->L[3] = d_QNAN1;
180 u->L[_0] = u->L[2 + _0] = 0x7ff00000 | sign | bits[1];
181 u->L[_1] = u->L[2 + _1] = bits[0];
static double ulpdown(double *d)
int strtodg(CONST char *s00, char **se, FPI *fpi, Long *exp, ULong *bits)