Home | History | Annotate | Download | only in Support

Lines Matching refs:Significand

36 /* Assumed in hexadecimal significand parsing, and conversion to
53 /* Number of bits in the significand. This includes the integer
221 assert(end - begin != 1 && "Significand has no digits");
235 structure D. Exponent is appropriate if the significand is
236 treated as an integer, and normalizedExponent if the significand
273 assert((*p == 'e' || *p == 'E') && "Invalid character in significand");
274 assert(p != begin && "Significand has no digits");
275 assert((dot == end || p - begin != 1) && "Significand has no digits");
583 significand.parts = new integerPart[count];
590 delete [] significand.parts;
616 for the significand. If double or longer, this is a signalling NaN,
623 integerPart *significand = significandParts();
626 // Set the significand bits to the fill.
628 APInt::tcSet(significand, 0, numParts);
630 APInt::tcAssign(significand, fill->getRawData(),
633 // Zero out the excess bits of the significand.
637 significand[part] &= ((1ULL << bitsToPreserve) - 1);
639 significand[part] = 0;
646 APInt::tcClearBit(significand, QNaNBit);
651 if (APInt::tcIsZero(significand, numParts))
652 APInt::tcSetBit(significand, QNaNBit - 1);
655 APInt::tcSetBit(significand, QNaNBit);
662 APInt::tcSetBit(significand, QNaNBit + 1);
697 // exponent and significand bitwise equal to 1 (i.e. with MSB equal to 0).
703 // Test if the significand excluding the integral bit is all ones. This allows
725 // Test if the significand excluding the integral bit is all zeros. This
749 // number with maximum exponent and with significand that is all ones.
841 return significand.parts;
843 return &significand.part;
852 /* Increment an fcNormal floating point number's significand. */
865 /* Add the significand of the RHS. Returns the carry flag. */
879 /* Subtract the significand of the RHS with a borrow flag. Returns
895 /* Multiply the significand of the RHS. If ADDEND is non-NULL, add it
944 Significand savedSignificand = significand;
964 significand.part = fullSignificand[0];
966 significand.parts = fullSignificand;
977 fullSignificand[0] = significand.part;
978 significand = savedSignificand;
1124 /* Shift the significand left BITS bits, subtract BITS from its exponent. */
1212 /* Our zeroes don't have a significand to test. */
1297 /* Increment the significand if we're rounding away from zero. */
1305 /* Did the significand increment overflow? */
1308 significand right one. However if we already have the
1323 significand increment above didn't overflow. */
1992 significand.parts = newParts;
1999 significand.part = newPart;
2311 integerPart *significand = significandParts();
2342 significand[bitPos / integerPartWidth] |= hex_value;
2351 assert((*p == 'p' || *p == 'P') && "Invalid character in significand");
2352 assert(p != begin && "Significand has no digits");
2353 assert((dot == end || p - begin != 1) && "Significand has no digits");
2370 /* Adjust for writing the significand starting at the most
2533 to hold the full significand, and an extra part required by
2558 assert(decValue < 10U && "Invalid character in significand");
2717 const integerPart *significand;
2727 significand = significandParts();
2750 fraction = lostFractionThroughTruncation (significand, partsCount, bits);
2770 part = significand[count] << shift;
2773 part |= significand[count - 1] >> (integerPartWidth - shift);
2821 // Normal floats need their exponent and significand hashed.
3092 /// exponent = all 1's, integer bit 0, significand 0 ("pseudoinfinity")
3093 /// exponent = all 1's, integer bit 0, significand nonzero ("pseudoNaN")
3111 // exponent, significand meaningless
3114 // exponent, significand meaningless
3173 // exponent, significand meaningless
3177 // exponent, significand meaningless
3210 // exponent, significand meaningless
3213 // exponent, significand meaningless
3243 // exponent, significand meaningless
3246 // exponent, significand meaningless
3249 // sign, exponent, significand meaningless
3276 // exponent, significand meaningless
3279 // exponent, significand meaningless
3282 // sign, exponent, significand meaningless
3346 // significand = 1..1
3352 integerPart *significand = significandParts();
3354 memset(significand, 0xFF, sizeof(integerPart)*(PartCount - 1));
3360 significand[PartCount - 1] = ~integerPart(0) >> NumUnusedHighBits;
3369 // significand = 0..01
3381 // significand = 1..1
3391 // significand = 0..01
3403 // significand = 10..0
3432 /// Removes data from the given significand until it is no more
3434 void AdjustToPrecision(APInt &significand,
3436 unsigned bits = significand.getActiveBits();
3448 APInt divisor(significand.getBitWidth(), 1);
3449 APInt powten(significand.getBitWidth(), 10);
3458 significand = significand.udiv(divisor);
3460 // Truncate the significand down to its active bit count.
3461 significand = significand.trunc(significand.getActiveBits());
3542 APInt significand(semantics->precision,
3557 int trailingZeros = significand.countTrailingZeros();
3559 significand = significand.lshr(trailingZeros);
3566 significand = significand.zext(semantics->precision + exp);
3567 significand <<= exp;
3574 // This means we have to multiply N (the significand) by 5^e.
3583 // Multiply significand by 5^e.
3585 significand = significand.zext(precision);
3588 if (texp & 1) significand *= five_to_the_i;
3596 AdjustToPrecision(significand, exp, FormatPrecision);
3601 unsigned precision = significand.getBitWidth();
3606 while (significand != 0) {
3607 // digit <- significand % 10
3608 // significand <- significand / 10
3609 APInt::udivrem(significand, ten, significand, digit);
3717 // integer bit is set in the significand.
3745 // first bit of the trailing significand being 0.
3803 // If we are negative, we need to decrement the significand.
3809 // 2. Our significand excluding the integral bit is all zeros.
3813 // Decrement the significand.
3817 // just decrement the significand.
3821 // significand with 0 integral bit and 1 in all other spots. Thus we
3825 // just decrement the significand.
3837 // If we are positive, we need to increment the significand.
3840 // the input is not a denormal and all of said input's significand bits
3841 // are set. If all of said conditions are true: clear the significand, set