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);
691 significand = rhs.significand;
711 // exponent and significand bitwise equal to 1 (i.e. with MSB equal to 0).
717 // Test if the significand excluding the integral bit is all ones. This allows
739 // Test if the significand excluding the integral bit is all zeros. This
763 // number with maximum exponent and with significand that is all ones.
859 return significand.parts;
861 return &significand.part;
870 /* Increment an fcNormal floating point number's significand. */
883 /* Add the significand of the RHS. Returns the carry flag. */
897 /* Subtract the significand of the RHS with a borrow flag. Returns
913 /* Multiply the significand of the RHS. If ADDEND is non-NULL, add it
962 Significand savedSignificand = significand;
982 significand.part = fullSignificand[0];
984 significand.parts = fullSignificand;
995 fullSignificand[0] = significand.part;
996 significand = savedSignificand;
1142 /* Shift the significand left BITS bits, subtract BITS from its exponent. */
1230 /* Our zeroes don't have a significand to test. */
1315 /* Increment the significand if we're rounding away from zero. */
1323 /* Did the significand increment overflow? */
1326 significand right one. However if we already have the
1341 significand increment above didn't overflow. */
2012 significand.parts = newParts;
2019 significand.part = newPart;
2331 integerPart *significand = significandParts();
2362 significand[bitPos / integerPartWidth] |= hex_value;
2371 assert((*p == 'p' || *p == 'P') && "Invalid character in significand");
2372 assert(p != begin && "Significand has no digits");
2373 assert((dot == end || p - begin != 1) && "Significand has no digits");
2390 /* Adjust for writing the significand starting at the most
2553 to hold the full significand, and an extra part required by
2578 assert(decValue < 10U && "Invalid character in significand");
2737 const integerPart *significand;
2747 significand = significandParts();
2770 fraction = lostFractionThroughTruncation (significand, partsCount, bits);
2790 part = significand[count] << shift;
2793 part |= significand[count - 1] >> (integerPartWidth - shift);
2841 // Normal floats need their exponent and significand hashed.
3112 /// exponent = all 1's, integer bit 0, significand 0 ("pseudoinfinity")
3113 /// exponent = all 1's, integer bit 0, significand nonzero ("pseudoNaN")
3131 // exponent, significand meaningless
3134 // exponent, significand meaningless
3193 // exponent, significand meaningless
3197 // exponent, significand meaningless
3230 // exponent, significand meaningless
3233 // exponent, significand meaningless
3263 // exponent, significand meaningless
3266 // exponent, significand meaningless
3269 // sign, exponent, significand meaningless
3296 // exponent, significand meaningless
3299 // exponent, significand meaningless
3302 // sign, exponent, significand meaningless
3366 // significand = 1..1
3372 integerPart *significand = significandParts();
3374 memset(significand, 0xFF, sizeof(integerPart)*(PartCount - 1));
3380 significand[PartCount - 1] = ~integerPart(0) >> NumUnusedHighBits;
3389 // significand = 0..01
3401 // significand = 1..1
3411 // significand = 0..01
3423 // significand = 10..0
3452 /// Removes data from the given significand until it is no more
3454 void AdjustToPrecision(APInt &significand,
3456 unsigned bits = significand.getActiveBits();
3468 APInt divisor(significand.getBitWidth(), 1);
3469 APInt powten(significand.getBitWidth(), 10);
3478 significand = significand.udiv(divisor);
3480 // Truncate the significand down to its active bit count.
3481 significand = significand.trunc(significand.getActiveBits());
3562 APInt significand(semantics->precision,
3580 int trailingZeros = significand.countTrailingZeros();
3582 significand = significand.lshr(trailingZeros);
3589 significand = significand.zext(semantics->precision + exp);
3590 significand <<= exp;
3597 // This means we have to multiply N (the significand) by 5^e.
3606 // Multiply significand by 5^e.
3608 significand = significand.zext(precision);
3611 if (texp & 1) significand *= five_to_the_i;
3619 AdjustToPrecision(significand, exp, FormatPrecision);
3624 unsigned precision = significand.getBitWidth();
3629 while (significand != 0) {
3630 // digit <- significand % 10
3631 // significand <- significand / 10
3632 APInt::udivrem(significand, ten, significand, digit);
3740 // integer bit is set in the significand.
3768 // first bit of the trailing significand being 0.
3826 significand.
3832 // 2. Our significand excluding the integral bit is all zeros.
3836 // Decrement the significand.
3840 // just decrement the significand.
3844 // significand with 0 integral bit and 1 in all other spots. Thus we
3848 // just decrement the significand.
3860 // If we are positive, we need to increment the significand.
3863 // the input is not a denormal and all of said input's significand bits
3864 // are set. If all of said conditions are true: clear the significand, set