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)
686 APFloat &
687 APFloat::operator=(APFloat &&rhs) {
701 APFloat::isDenormal() const {
708 APFloat::isSmallest() const {
716 bool APFloat::isSignificandAllOnes() const {
738 bool APFloat::isSignificandAllZeros() const {
761 APFloat::isLargest() const {
769 APFloat::bitwiseIsEqual(const APFloat &rhs) const {
792 APFloat::APFloat(const fltSemantics &ourSemantics, integerPart value) {
802 APFloat::APFloat(const fltSemantics &ourSemantics) {
808 APFloat::APFloat(const fltSemantics &ourSemantics, uninitializedTag tag) {
813 APFloat::APFloat(const fltSemantics &ourSemantics, StringRef text) {
818 APFloat::APFloat(const APFloat &rhs) {
823 APFloat::APFloat(APFloat &&rhs) : semantics(&Bogus) {
827 APFloat::~APFloat()
832 // Profile - This method 'profiles' an APFloat for use with FoldingSet.
833 void APFloat::Profile(FoldingSetNodeID& ID) const {
838 APFloat::partCount() const
844 APFloat::semanticsPrecision(const fltSemantics &semantics)
850 APFloat::significandParts() const
852 return const_cast<APFloat *>(this)->significandParts();
856 APFloat::significandParts()
865 APFloat::zeroSignificand()
872 APFloat::incrementSignificand()
885 APFloat::addSignificand(const APFloat &rhs)
900 APFloat::subtractSignificand(const APFloat &rhs, integerPart borrow)
917 APFloat::multiplySignificand(const APFloat &rhs, const APFloat *addend)
987 APFloat extendedAddend(*addend);
1013 // caller needs to call APFloat::normalize() if normalized value is expected.
1035 APFloat::divideSignificand(const APFloat &rhs)
1119 APFloat::significandMSB() const
1125 APFloat::significandLSB() const
1132 APFloat::shiftSignificandRight(unsigned int bits)
1144 APFloat::shiftSignificandLeft(unsigned int bits)
1158 APFloat::cmpResult
1159 APFloat::compareAbsoluteValue(const APFloat &rhs) const
1185 APFloat::opStatus
1186 APFloat::handleOverflow(roundingMode rounding_mode)
1212 APFloat::roundAwayFromZero(roundingMode rounding_mode,
1248 APFloat::opStatus
1249 APFloat::normalize(roundingMode rounding_mode,
1356 APFloat::opStatus
1357 APFloat::addOrSubtractSpecials(const APFloat &rhs, bool subtract)
1414 APFloat::addOrSubtractSignificand(const APFloat &rhs, bool subtract)
1429 APFloat temp_rhs(rhs);
1468 APFloat temp_rhs(rhs);
1485 APFloat::opStatus
1486 APFloat::multiplySpecials(const APFloat &rhs)
1529 APFloat::opStatus
1530 APFloat::divideSpecials(const APFloat &rhs)
1570 APFloat::opStatus
1571 APFloat::modSpecials(const APFloat &rhs)
1609 APFloat::changeSign()
1616 APFloat::clearSign()
1623 APFloat::copySign(const APFloat &rhs)
1630 APFloat::opStatus
1631 APFloat::addOrSubtract(const APFloat &rhs, roundingMode rounding_mode,
1661 APFloat::opStatus
1662 APFloat::add(const APFloat &rhs, roundingMode rounding_mode)
1668 APFloat::opStatus
1669 APFloat::subtract(const APFloat &rhs, roundingMode rounding_mode)
1675 APFloat::opStatus
1676 APFloat::multiply(const APFloat &rhs, roundingMode rounding_mode)
1694 APFloat::opStatus
1695 APFloat::divide(const APFloat &rhs, roundingMode rounding_mode)
1713 APFloat::opStatus
1714 APFloat::remainder(const APFloat &rhs)
1717 APFloat V = *this;
1750 APFloat::opStatus
1751 APFloat::mod(const APFloat &rhs, roundingMode rounding_mode)
1757 APFloat V = *this;
1790 APFloat::opStatus
1791 APFloat::fusedMultiplyAdd(const APFloat &multiplicand,
1792 const APFloat &addend,
1835 APFloat::opStatus APFloat::roundToIntegral(roundingMode rounding_mode) {
1852 APFloat MagicConstant(*semantics);
1878 APFloat::cmpResult
1879 APFloat::compare(const APFloat &rhs) const
1950 /// APFloat::convert - convert a value of one floating point type to another.
1957 APFloat::opStatus
1958 APFloat::convert(const fltSemantics &toSemantics,
1973 if (&fromSemantics == &APFloat::x87DoubleExtended &&
1974 &toSemantics != &APFloat::x87DoubleExtended && category == fcNaN &&
2038 if (!X86SpecialNan && semantics == &APFloat::x87DoubleExtended)
2064 APFloat::opStatus
2065 APFloat::convertToSignExtendedInteger(integerPart *parts, unsigned int width,
2176 APFloat::opStatus
2177 APFloat::convertToInteger(integerPart *parts, unsigned int width,
2210 APFloat::opStatus
2211 APFloat::convertToInteger(APSInt &result,
2226 APFloat::opStatus
2227 APFloat::convertFromUnsignedParts(const integerPart *src,
2257 APFloat::opStatus
2258 APFloat::convertFromAPInt(const APInt &Val,
2277 APFloat::opStatus
2278 APFloat::convertFromSignExtendedInteger(const integerPart *src,
2305 APFloat::opStatus
2306 APFloat::convertFromZeroExtendedInteger(const integerPart *parts,
2322 APFloat::opStatus
2323 APFloat::convertFromHexadecimalString(StringRef s, roundingMode rounding_mode)
2402 APFloat::opStatus
2403 APFloat::roundSignificandWithExponent(const integerPart *decSigParts,
2428 APFloat decSig = APFloat::getZero(calcSemantics, sign);
2429 APFloat pow5(calcSemantics);
2487 APFloat::opStatus
2488 APFloat::convertFromDecimalString(StringRef str, roundingMode rounding_mode)
2606 APFloat::convertFromStringSpecials(StringRef str) {
2630 APFloat::opStatus
2631 APFloat::convertFromString(StringRef str, roundingMode rounding_mode)
2683 APFloat::convertToHexString(char *dst, unsigned int hexDigits,
2731 APFloat::convertNormalToHexString(char *dst, unsigned int hexDigits,
2834 hash_code llvm::hash_value(const APFloat &Arg) {
2849 // Conversion from APFloat to/from host float/double. It may eventually be
2855 // Denormals have exponent minExponent in APFloat, but minExponent-1 in
2859 APFloat::convertF80LongDoubleAPFloatToAPInt() const
2891 APFloat::convertPPCDoubleDoubleAPFloatToAPInt() const
2904 // Declare fltSemantics before APFloat that uses it (and
2908 APFloat extended(*this);
2913 APFloat u(extended);
2928 APFloat v(extended);
2942 APFloat::convertQuadrupleAPFloatToAPInt() const
2978 APFloat::convertDoubleAPFloatToAPInt() const
3008 APFloat::convertFloatAPFloatToAPInt() const
3037 APFloat::convertHalfAPFloatToAPInt() const
3070 APFloat::bitcastToAPInt() const
3093 APFloat::convertToFloat() const
3102 APFloat::convertToDouble() const
3118 APFloat::initFromF80LongDoubleAPInt(const APInt &api)
3126 initialize(&APFloat::x87DoubleExtended);
3152 APFloat::initFromPPCDoubleDoubleAPInt(const APInt &api)
3168 APFloat v(IEEEdouble, APInt(64, i2));
3178 APFloat::initFromQuadrupleAPInt(const APInt &api)
3187 initialize(&APFloat::IEEEquad);
3218 APFloat::initFromDoubleAPInt(const APInt &api)
3225 initialize(&APFloat::IEEEdouble);
3251 APFloat::initFromFloatAPInt(const APInt & api)
3258 initialize(&APFloat::IEEEsingle);
3284 APFloat::initFromHalfAPInt(const APInt & api)
3291 initialize(&APFloat::IEEEhalf);
3321 APFloat::initFromAPInt(const fltSemantics* Sem, const APInt& api)
3339 APFloat
3340 APFloat::getAllOnesValue(unsigned BitWidth, bool isIEEE)
3344 return APFloat(IEEEhalf, APInt::getAllOnesValue(BitWidth));
3346 return APFloat(IEEEsingle, APInt::getAllOnesValue(BitWidth));
3348 return APFloat(IEEEdouble, APInt::getAllOnesValue(BitWidth));
3350 return APFloat(x87DoubleExtended, APInt::getAllOnesValue(BitWidth));
3353 return APFloat(IEEEquad, APInt::getAllOnesValue(BitWidth));
3354 return APFloat(PPCDoubleDouble, APInt::getAllOnesValue(BitWidth));
3362 void APFloat::makeLargest(bool Negative) {
3385 void APFloat::makeSmallest(bool Negative) {
3397 APFloat APFloat::getLargest(const fltSemantics &Sem, bool Negative) {
3402 APFloat Val(Sem, uninitialized);
3407 APFloat APFloat::getSmallest(const fltSemantics &Sem, bool Negative) {
3412 APFloat Val(Sem, uninitialized);
3417 APFloat APFloat::getSmallestNormalized(const fltSemantics &Sem, bool Negative) {
3418 APFloat Val(Sem, uninitialized);
3435 APFloat::APFloat(const fltSemantics &Sem, const APInt &API) {
3439 APFloat::APFloat(float f) {
3443 APFloat::APFloat(double d) {
3531 void APFloat::toString(SmallVectorImpl<char> &Str,
3570 // APFloat. The formula comes from "How to Print Floating-Point Numbers
3734 bool APFloat::getExactInverse(APFloat *inv) const {
3745 APFloat reciprocal(*semantics, 1ULL);
3763 bool APFloat::isSignaling() const {
3776 APFloat::opStatus APFloat::next(bool nextDown) {
3893 APFloat::makeInf(bool Negative) {
3901 APFloat::makeZero(bool Negative) {