50 CONST unsigned char *decpt, *s0, *s, *s1;
51 int esign, havedig, irv, k, n, nbits, up, zret;
52 ULong L, lostbits, *x;
57 #define decimalpoint '.' 67 s0 = *(
CONST unsigned char**)sp + 2;
68 while(s0[havedig] ==
'0')
129 e = -(((
Long)(s - decpt)) << 2);
147 if((n =
hexdig[*s]) == 0 || n > 0x19)
153 while((n =
hexdig[*++s]) != 0 && n <= 0x19)
156 e1 = 10 * e1 + n - 0x10;
167 *sp = (
const char*)s;
173 *sp = (
const char*)s0 - 1;
178 n = (int)(s1 - s0 - 1);
179 for(k = 0; n > 7; n >>= 1)
201 L |= (unsigned)((
hexdig[*s1] & 0x0f) << n);
221 if(k > 1 &&
any_on(b, k - 1))
256 if(n == nbits && (n < 2 ||
any_on(b, n - 1)))
316 if(lostbits & 2 && ((lostbits & 1) | (x[0] & 1)))
343 else if(b->
wds > k || (((n = nbits &
kmask) != 0) && (
hi0bits(x[k - 1]) < (32 - n))))
ULong any_on(Bigint *b, int k)
Bigint * lshift(Bigint *b, int k)
Bigint * increment(Bigint *b)
struct lconv * localeconv(void)
int gethex(CONST char **sp, FPI *fpi, Long *exp, Bigint **bp, int sign)
void rshift(Bigint *b, int k)
void hexdig_init_D2A(Void)