Lines Matching defs:bi
209 _big_float bi, bf, *ptounpacked = &bi;
247 bi.bsize = _BIG_FLOAT_SIZE;
248 decimal_to_binary_integer(pd->ds, ndigs, ntz, significant_bits, &bi);
249 if (bi.bexponent == 0x7fff) { /* Too big for buffer. */
254 sigint = 16 * (bi.blength + bi.bexponent - 1);
258 bi.blength = 0;
259 bi.bsignificand[0] = 0;
260 bi.bexponent = 0;
273 bi.bsignificand[0] |= 1; /* Stick for fraction. */
275 if (bi.blength == 0) { /* No integer digits; all fraction. */
285 int expdiff = bi.bexponent - (bf.bexponent + 16 * (bf.blength - 1)); /* Exponent difference. */
291 printf(" bi+bf exponent diff is %d \n", expdiff);
293 assert(bi.blength != 0);
295 assert(bi.bsignificand[bi.blength - 1] != 0); /* Normalized bi. */
297 assert(bi.bexponent >= 0); /* bi is all integer */
310 if (bi.blength >= uneeded) { /* bi will overflow unpacked,
312 bi.bsignificand[0] |= 1;
316 if (leftshift > 0) { /* shift bf to align with bi. */
328 * of the hole between bi and bf. */
330 nmove = uneeded - bi.blength;
331 /* nmove is the number of words to add to bi. */
337 printf(" increase bi by %d words to merge \n", nmove);
342 for (i = (bi.blength - 1 + nmove); i >= nmove; i--)
343 bi.bsignificand[i] = bi.bsignificand[i - nmove];
346 bi.bsignificand[i] = 0;
350 bi.bsignificand[i] = bf.bsignificand[i + bf.blength - 1 - if0];
354 bi.bsignificand[0] |= 1; /* If non-zero found,
356 bi.blength += nmove;
357 bi.bexponent -= 16 * nmove;
365 printf(" merged bi and bf: ");