Home | History | Annotate | Download | only in Support

Lines Matching refs:APFloat

1 //===-- APFloat.cpp - Implement APFloat class -----------------------------===//
15 #include "llvm/ADT/APFloat.h"
29 /// in a switch statement to classify how the interaction of two APFloat's
47 APFloat::ExponentType maxExponent;
51 APFloat::ExponentType minExponent;
58 const fltSemantics APFloat::IEEEhalf = { 15, -14, 11 };
59 const fltSemantics APFloat::IEEEsingle = { 127, -126, 24 };
60 const fltSemantics APFloat::IEEEdouble = { 1023, -1022, 53 };
61 const fltSemantics APFloat::IEEEquad = { 16383, -16382, 113 };
62 const fltSemantics APFloat::x87DoubleExtended = { 16383, -16382, 64 };
63 const fltSemantics APFloat::Bogus = { 0, 0, 0 };
76 const fltSemantics APFloat::PPCDoubleDouble = { 1023, -1022 + 53, 53 + 53 };
297 D->exponent += static_cast<APFloat::ExponentType>((dot - p) - (dot > p));
299 static_cast<APFloat::ExponentType>((p - D->firstSigDigit)
576 APFloat::initialize(const fltSemantics *ourSemantics)
587 APFloat
594 APFloat::assign(const APFloat &rhs)
606 APFloat::copySignificand(const APFloat &rhs)
618 void APFloat::makeNaN(bool SNaN, bool Negative, const APInt *fill)
661 if (semantics == &APFloat::x87DoubleExtended)
665 APFloat APFloat::makeNaN(const fltSemantics &Sem, bool SNaN, bool Negative,
667 APFloat value(Sem, uninitialized);
672 APFloat &
673 APFloat::operator=(const APFloat &rhs)
687 APFloat::isDenormal() const {
694 APFloat::isSmallest() const {
702 bool APFloat::isSignificandAllOnes() const {
724 bool APFloat::isSignificandAllZeros() const {
747 APFloat::isLargest() const {
755 APFloat::bitwiseIsEqual(const APFloat &rhs) const {
778 APFloat::APFloat(const fltSemantics &ourSemantics, integerPart value) {
788 APFloat::APFloat(const fltSemantics &ourSemantics) {
794 APFloat::APFloat(const fltSemantics &ourSemantics, uninitializedTag tag) {
799 APFloat::APFloat(const fltSemantics &ourSemantics, StringRef text) {
804 APFloat::APFloat(const APFloat &rhs) {
809 APFloat::~APFloat()
814 // Profile - This method 'profiles' an APFloat for use with FoldingSet.
815 void APFloat::Profile(FoldingSetNodeID& ID) const {
820 APFloat::partCount() const
826 APFloat::semanticsPrecision(const fltSemantics &semantics)
832 APFloat::significandParts() const
834 return const_cast<APFloat *>(this)->significandParts();
838 APFloat::significandParts()
847 APFloat::zeroSignificand()
854 APFloat::incrementSignificand()
867 APFloat::addSignificand(const APFloat &rhs)
882 APFloat::subtractSignificand(const APFloat &rhs, integerPart borrow)
899 APFloat::multiplySignificand(const APFloat &rhs, const APFloat *addend)
969 APFloat extendedAddend(*addend);
995 // caller needs to call APFloat::normalize() if normalized value is expected.
1017 APFloat::divideSignificand(const APFloat &rhs)
1101 APFloat::significandMSB() const
1107 APFloat::significandLSB() const
1114 APFloat::shiftSignificandRight(unsigned int bits)
1126 APFloat::shiftSignificandLeft(unsigned int bits)
1140 APFloat::cmpResult
1141 APFloat::compareAbsoluteValue(const APFloat &rhs) const
1167 APFloat::opStatus
1168 APFloat
1194 APFloat::roundAwayFromZero(roundingMode rounding_mode,
1230 APFloat::opStatus
1231 APFloat::normalize(roundingMode rounding_mode,
1338 APFloat::opStatus
1339 APFloat::addOrSubtractSpecials(const APFloat &rhs, bool subtract)
1394 APFloat::addOrSubtractSignificand(const APFloat &rhs, bool subtract)
1409 APFloat temp_rhs(rhs);
1448 APFloat temp_rhs(rhs);
1465 APFloat::opStatus
1466 APFloat::multiplySpecials(const APFloat &rhs)
1509 APFloat::opStatus
1510 APFloat::divideSpecials(const APFloat &rhs)
1550 APFloat::opStatus
1551 APFloat::modSpecials(const APFloat &rhs)
1589 APFloat::changeSign()
1596 APFloat::clearSign()
1603 APFloat::copySign(const APFloat &rhs)
1610 APFloat::opStatus
1611 APFloat::addOrSubtract(const APFloat &rhs, roundingMode rounding_mode,
1641 APFloat::opStatus
1642 APFloat::add(const APFloat &rhs, roundingMode rounding_mode)
1648 APFloat::opStatus
1649 APFloat::subtract(const APFloat &rhs, roundingMode rounding_mode)
1655 APFloat::opStatus
1656 APFloat::multiply(const APFloat &rhs, roundingMode rounding_mode)
1674 APFloat::opStatus
1675 APFloat::divide(const APFloat &rhs, roundingMode rounding_mode)
1693 APFloat::opStatus
1694 APFloat::remainder(const APFloat &rhs)
1697 APFloat V = *this;
1730 APFloat::opStatus
1731 APFloat::mod(const APFloat &rhs, roundingMode rounding_mode)
1737 APFloat V = *this;
1770 APFloat::opStatus
1771 APFloat::fusedMultiplyAdd(const APFloat &multiplicand,
1772 const APFloat &addend,
1815 APFloat::opStatus APFloat::roundToIntegral(roundingMode rounding_mode) {
1832 APFloat MagicConstant(*semantics);
1858 APFloat::cmpResult
1859 APFloat::compare(const APFloat &rhs) const
1930 /// APFloat::convert - convert a value of one floating point type to another.
1937 APFloat::opStatus
1938 APFloat::convert(const fltSemantics &toSemantics,
1953 if (&fromSemantics == &APFloat::x87DoubleExtended &&
1954 &toSemantics != &APFloat::x87DoubleExtended && category == fcNaN &&
2018 if (!X86SpecialNan && semantics == &APFloat::x87DoubleExtended)
2044 APFloat::opStatus
2045 APFloat::convertToSignExtendedInteger(integerPart *parts, unsigned int width,
2156 APFloat::opStatus
2157 APFloat::convertToInteger(integerPart *parts, unsigned int width,
2190 APFloat::opStatus
2191 APFloat::convertToInteger(APSInt &result,
2206 APFloat::opStatus
2207 APFloat::convertFromUnsignedParts(const integerPart *src,
2237 APFloat::opStatus
2238 APFloat::convertFromAPInt(const APInt &Val,
2257 APFloat::opStatus
2258 APFloat::convertFromSignExtendedInteger(const integerPart *src,
2285 APFloat::opStatus
2286 APFloat::convertFromZeroExtendedInteger(const integerPart *parts,
2302 APFloat::opStatus
2303 APFloat::convertFromHexadecimalString(StringRef s, roundingMode rounding_mode)
2382 APFloat::opStatus
2383 APFloat::roundSignificandWithExponent(const integerPart *decSigParts,
2408 APFloat decSig = APFloat::getZero(calcSemantics, sign);
2409 APFloat pow5(calcSemantics);
2467 APFloat::opStatus
2468 APFloat::convertFromDecimalString(StringRef str, roundingMode rounding_mode)
2586 APFloat::convertFromStringSpecials(StringRef str) {
2610 APFloat::opStatus
2611 APFloat::convertFromString(StringRef str, roundingMode rounding_mode)
2663 APFloat::convertToHexString(char *dst, unsigned int hexDigits,
2711 APFloat::convertNormalToHexString(char *dst, unsigned int hexDigits,
2814 hash_code llvm::hash_value(const APFloat &Arg) {
2829 // Conversion from APFloat to/from host float/double. It may eventually be
2835 // Denormals have exponent minExponent in APFloat, but minExponent-1 in
2839 APFloat::convertF80LongDoubleAPFloatToAPInt() const
2871 APFloat::convertPPCDoubleDoubleAPFloatToAPInt() const
2884 // Declare fltSemantics before APFloat that uses it (and
2888 APFloat extended(*this);
2893 APFloat u(extended);
2908 APFloat v(extended);
2922 APFloat::convertQuadrupleAPFloatToAPInt() const
2958 APFloat::convertDoubleAPFloatToAPInt() const
2988 APFloat::convertFloatAPFloatToAPInt() const
3017 APFloat::convertHalfAPFloatToAPInt() const
3050 APFloat::bitcastToAPInt() const
3073 APFloat::convertToFloat() const
3082 APFloat::convertToDouble() const
3098 APFloat::initFromF80LongDoubleAPInt(const APInt &api)
3106 initialize(&APFloat::x87DoubleExtended);
3132 APFloat::initFromPPCDoubleDoubleAPInt(const APInt &api)
3148 APFloat v(IEEEdouble, APInt(64, i2));
3158 APFloat::initFromQuadrupleAPInt(const APInt &api)
3167 initialize(&APFloat::IEEEquad);
3198 APFloat::initFromDoubleAPInt(const APInt &api)
3205 initialize(&APFloat::IEEEdouble);
3231 APFloat::initFromFloatAPInt(const APInt & api)
3238 initialize(&APFloat::IEEEsingle);
3264 APFloat::initFromHalfAPInt(const APInt & api)
3271 initialize(&APFloat::IEEEhalf);
3301 APFloat::initFromAPInt(const fltSemantics* Sem, const APInt& api)
3319 APFloat
3320 APFloat::getAllOnesValue(unsigned BitWidth, bool isIEEE)
3324 return APFloat(IEEEhalf, APInt::getAllOnesValue(BitWidth));
3326 return APFloat(IEEEsingle, APInt::getAllOnesValue(BitWidth));
3328 return APFloat(IEEEdouble, APInt::getAllOnesValue(BitWidth));
3330 return APFloat(x87DoubleExtended, APInt::getAllOnesValue(BitWidth));
3333 return APFloat(IEEEquad, APInt::getAllOnesValue(BitWidth));
3334 return APFloat(PPCDoubleDouble, APInt::getAllOnesValue(BitWidth));
3342 void APFloat::makeLargest(bool Negative) {
3365 void APFloat::makeSmallest(bool Negative) {
3377 APFloat APFloat::getLargest(const fltSemantics &Sem, bool Negative) {
3382 APFloat Val(Sem, uninitialized);
3387 APFloat APFloat::getSmallest(const fltSemantics &Sem, bool Negative) {
3392 APFloat Val(Sem, uninitialized);
3397 APFloat APFloat::getSmallestNormalized(const fltSemantics &Sem, bool Negative) {
3398 APFloat Val(Sem, uninitialized);
3415 APFloat::APFloat(const fltSemantics &Sem, const APInt &API) {
3419 APFloat::APFloat(float f) {
3423 APFloat::APFloat(double d) {
3511 void APFloat::toString(SmallVectorImpl<char> &Str,
3711 bool APFloat::getExactInverse(APFloat *inv) const {
3722 APFloat reciprocal(*semantics, 1ULL);
3740 bool APFloat::isSignaling() const {
3753 APFloat::opStatus APFloat::next(bool nextDown) {
3870 APFloat::makeInf(bool Negative) {
3878 APFloat::makeZero(bool Negative) {