LLVM 22.0.0git
|
#include "llvm/ADT/APFloat.h"
Friends | |
LLVM_ABI friend int | ilogb (const DoubleAPFloat &X) |
LLVM_ABI friend DoubleAPFloat | scalbn (const DoubleAPFloat &X, int Exp, roundingMode) |
LLVM_ABI friend DoubleAPFloat | frexp (const DoubleAPFloat &X, int &Exp, roundingMode) |
LLVM_ABI friend hash_code | hash_value (const DoubleAPFloat &Arg) |
llvm::detail::DoubleAPFloat::DoubleAPFloat | ( | const fltSemantics & | S | ) |
Definition at line 4816 of file APFloat.cpp.
References llvm::semIEEEdouble.
llvm::detail::DoubleAPFloat::DoubleAPFloat | ( | const fltSemantics & | S, |
uninitializedTag | |||
) |
Definition at line 4822 of file APFloat.cpp.
References llvm::semIEEEdouble, and llvm::detail::uninitialized.
llvm::detail::DoubleAPFloat::DoubleAPFloat | ( | const fltSemantics & | S, |
integerPart | I | ||
) |
Definition at line 4829 of file APFloat.cpp.
References I, and llvm::semIEEEdouble.
llvm::detail::DoubleAPFloat::DoubleAPFloat | ( | const fltSemantics & | S, |
const APInt & | I | ||
) |
Definition at line 4835 of file APFloat.cpp.
References I, and llvm::semIEEEdouble.
llvm::detail::DoubleAPFloat::DoubleAPFloat | ( | const fltSemantics & | S, |
APFloat && | First, | ||
APFloat && | Second | ||
) |
Definition at line 4843 of file APFloat.cpp.
References llvm::First.
llvm::detail::DoubleAPFloat::DoubleAPFloat | ( | const DoubleAPFloat & | RHS | ) |
Definition at line 4852 of file APFloat.cpp.
References RHS.
llvm::detail::DoubleAPFloat::DoubleAPFloat | ( | DoubleAPFloat && | RHS | ) |
Definition at line 4860 of file APFloat.cpp.
References assert(), RHS, llvm::semBogus, and llvm::semPPCDoubleDouble.
|
inline |
Definition at line 1690 of file APFloat.h.
Referenced by operator=().
APFloat::opStatus llvm::detail::DoubleAPFloat::add | ( | const DoubleAPFloat & | RHS, |
roundingMode | RM | ||
) |
APInt llvm::detail::DoubleAPFloat::bitcastToAPInt | ( | ) | const |
Definition at line 5357 of file APFloat.cpp.
References assert(), llvm::APFloat::bitcastToAPInt(), llvm::Data, llvm::APInt::getRawData(), and llvm::semPPCDoubleDouble.
Referenced by convertToHexString(), divide(), fusedMultiplyAdd(), mod(), remainder(), and toString().
bool llvm::detail::DoubleAPFloat::bitwiseIsEqual | ( | const DoubleAPFloat & | RHS | ) | const |
Definition at line 5346 of file APFloat.cpp.
References llvm::APFloat::bitwiseIsEqual(), and RHS.
void llvm::detail::DoubleAPFloat::changeSign | ( | ) |
Definition at line 5236 of file APFloat.cpp.
References llvm::APFloat::changeSign().
Referenced by convertFromAPInt(), makeLargest(), next(), and subtract().
APFloat::cmpResult llvm::detail::DoubleAPFloat::compare | ( | const DoubleAPFloat & | RHS | ) | const |
Definition at line 5338 of file APFloat.cpp.
References llvm::APFloatBase::cmpEqual, llvm::APFloat::compare(), and RHS.
Referenced by isLargest(), isSmallest(), isSmallestNormalized(), and next().
APFloat::cmpResult llvm::detail::DoubleAPFloat::compareAbsoluteValue | ( | const DoubleAPFloat & | RHS | ) | const |
Definition at line 5242 of file APFloat.cpp.
References llvm::detail::cmpEqual, llvm::detail::cmpGreaterThan, llvm::detail::cmpLessThan, llvm::APFloat::isNegative(), isZero(), and RHS.
APFloat::opStatus llvm::detail::DoubleAPFloat::convertFromAPInt | ( | const APInt & | Input, |
bool | IsSigned, | ||
roundingMode | RM | ||
) |
Definition at line 5745 of file APFloat.cpp.
References changeSign(), llvm::APInt::getNumWords(), llvm::APInt::getRawData(), llvm::APInt::isNegative(), and llvm::APInt::negate().
Expected< APFloat::opStatus > llvm::detail::DoubleAPFloat::convertFromString | ( | StringRef | S, |
roundingMode | RM | ||
) |
Definition at line 5366 of file APFloat.cpp.
References assert(), llvm::APFloat::bitcastToAPInt(), llvm::APFloat::convertFromString(), llvm::semPPCDoubleDouble, and llvm::semPPCDoubleDoubleLegacy.
unsigned int llvm::detail::DoubleAPFloat::convertToHexString | ( | char * | DST, |
unsigned int | HexDigits, | ||
bool | UpperCase, | ||
roundingMode | RM | ||
) | const |
Definition at line 5760 of file APFloat.cpp.
References assert(), bitcastToAPInt(), llvm::APFloat::convertToHexString(), llvm::semPPCDoubleDouble, and llvm::semPPCDoubleDoubleLegacy.
APFloat::opStatus llvm::detail::DoubleAPFloat::convertToInteger | ( | MutableArrayRef< integerPart > | Input, |
unsigned int | Width, | ||
bool | IsSigned, | ||
roundingMode | RM, | ||
bool * | IsExact | ||
) | const |
Definition at line 5580 of file APFloat.cpp.
References assert(), llvm::MutableArrayRef< T >::data(), llvm::detail::fcNaN, getCategory(), isNegative(), llvm::detail::opInvalidOp, llvm::partCountForBits(), llvm::ArrayRef< T >::size(), llvm::detail::tcSetLeastSignificantBits(), and llvm::APInt::tcShiftLeft().
APFloat::opStatus llvm::detail::DoubleAPFloat::divide | ( | const DoubleAPFloat & | RHS, |
APFloat::roundingMode | RM | ||
) |
Definition at line 5120 of file APFloat.cpp.
References assert(), bitcastToAPInt(), llvm::APFloat::bitcastToAPInt(), llvm::APFloat::divide(), RHS, llvm::semPPCDoubleDouble, and llvm::semPPCDoubleDoubleLegacy.
APFloat::opStatus llvm::detail::DoubleAPFloat::fusedMultiplyAdd | ( | const DoubleAPFloat & | Multiplicand, |
const DoubleAPFloat & | Addend, | ||
APFloat::roundingMode | RM | ||
) |
Definition at line 5148 of file APFloat.cpp.
References assert(), bitcastToAPInt(), llvm::APFloat::bitcastToAPInt(), llvm::APFloat::fusedMultiplyAdd(), llvm::semPPCDoubleDouble, and llvm::semPPCDoubleDoubleLegacy.
APFloat::fltCategory llvm::detail::DoubleAPFloat::getCategory | ( | ) | const |
Definition at line 5295 of file APFloat.cpp.
References llvm::APFloat::getCategory().
Referenced by convertToInteger(), llvm::detail::frexp(), isDenormal(), isLargest(), isSmallest(), isSmallestNormalized(), and next().
int llvm::detail::DoubleAPFloat::getExactLog2Abs | ( | ) | const |
Definition at line 5815 of file APFloat.cpp.
References llvm::APFloat::getExactLog2Abs(), getFirst(), and getSecond().
|
inline |
Definition at line 1685 of file APFloat.h.
Referenced by llvm::detail::frexp(), getExactLog2Abs(), next(), and roundToIntegral().
|
inline |
Definition at line 1687 of file APFloat.h.
Referenced by llvm::detail::frexp(), getExactLog2Abs(), next(), and roundToIntegral().
bool llvm::detail::DoubleAPFloat::isDenormal | ( | ) | const |
Definition at line 5769 of file APFloat.cpp.
References llvm::detail::fcNormal, getCategory(), and llvm::APFloat::isDenormal().
bool llvm::detail::DoubleAPFloat::isInteger | ( | ) | const |
Definition at line 5801 of file APFloat.cpp.
References assert(), llvm::APFloat::isInteger(), and llvm::semPPCDoubleDouble.
bool llvm::detail::DoubleAPFloat::isLargest | ( | ) | const |
Definition at line 5793 of file APFloat.cpp.
References llvm::detail::cmpEqual, compare(), llvm::detail::fcNormal, getCategory(), isNegative(), and makeLargest().
bool llvm::detail::DoubleAPFloat::isNegative | ( | ) | const |
Definition at line 5299 of file APFloat.cpp.
References llvm::APFloat::isNegative().
Referenced by convertToInteger(), llvm::detail::frexp(), isLargest(), isSmallest(), isSmallestNormalized(), next(), and roundToIntegral().
bool llvm::detail::DoubleAPFloat::isSmallest | ( | ) | const |
Definition at line 5776 of file APFloat.cpp.
References llvm::detail::cmpEqual, compare(), llvm::detail::fcNormal, getCategory(), isNegative(), and makeSmallest().
bool llvm::detail::DoubleAPFloat::isSmallestNormalized | ( | ) | const |
Definition at line 5784 of file APFloat.cpp.
References llvm::detail::cmpEqual, compare(), llvm::detail::fcNormal, getCategory(), isNegative(), and makeSmallestNormalized().
void llvm::detail::DoubleAPFloat::makeInf | ( | bool | Neg | ) |
Definition at line 5301 of file APFloat.cpp.
Referenced by next().
void llvm::detail::DoubleAPFloat::makeLargest | ( | bool | Neg | ) |
Definition at line 5311 of file APFloat.cpp.
References assert(), changeSign(), llvm::semIEEEdouble, and llvm::semPPCDoubleDouble.
Referenced by isLargest(), and next().
void llvm::detail::DoubleAPFloat::makeSmallest | ( | bool | Neg | ) |
Definition at line 5319 of file APFloat.cpp.
References assert(), and llvm::semPPCDoubleDouble.
Referenced by isSmallest(), and next().
void llvm::detail::DoubleAPFloat::makeSmallestNormalized | ( | bool | Neg | ) |
Definition at line 5325 of file APFloat.cpp.
References assert(), llvm::APFloat::changeSign(), llvm::semIEEEdouble, and llvm::semPPCDoubleDouble.
Referenced by isSmallestNormalized().
void llvm::detail::DoubleAPFloat::makeZero | ( | bool | Neg | ) |
Definition at line 5306 of file APFloat.cpp.
Referenced by next().
APFloat::opStatus llvm::detail::DoubleAPFloat::mod | ( | const DoubleAPFloat & | RHS | ) |
Definition at line 5139 of file APFloat.cpp.
References assert(), bitcastToAPInt(), llvm::APFloat::bitcastToAPInt(), llvm::APFloat::mod(), RHS, llvm::semPPCDoubleDouble, and llvm::semPPCDoubleDoubleLegacy.
APFloat::opStatus llvm::detail::DoubleAPFloat::multiply | ( | const DoubleAPFloat & | RHS, |
APFloat::roundingMode | RM | ||
) |
Definition at line 5034 of file APFloat.cpp.
References A, llvm::APFloat::add(), assert(), B, llvm::CallingConv::C, D, llvm::detail::fcInfinity, llvm::detail::fcNaN, llvm::detail::fcNormal, llvm::detail::fcZero, llvm::APFloat::fusedMultiplyAdd(), LHS, llvm::detail::opOK, and RHS.
|
inline |
APFloat::opStatus llvm::detail::DoubleAPFloat::next | ( | bool | nextDown | ) |
Definition at line 5381 of file APFloat.cpp.
References assert(), changeSign(), llvm::detail::cmpGreaterThan, compare(), llvm::detail::fcInfinity, llvm::detail::fcNaN, llvm::detail::fcNormal, llvm::detail::fcZero, getCategory(), getFirst(), getSecond(), llvm::harrisonUlp(), llvm::Hi, llvm::APFloat::isInfinity(), isNegative(), llvm::APFloat::isZero(), llvm::Lo, makeInf(), makeLargest(), makeNaN(), makeSmallest(), makeZero(), llvm::neg(), next(), llvm::APFloat::next(), llvm::detail::opInvalidOp, llvm::detail::opOK, llvm::detail::rmTowardZero, scalbn, llvm::semPPCDoubleDouble, and llvm::detail::uninitialized.
Referenced by next().
DoubleAPFloat & llvm::detail::DoubleAPFloat::operator= | ( | const DoubleAPFloat & | RHS | ) |
Definition at line 4867 of file APFloat.cpp.
References RHS, and ~DoubleAPFloat().
|
inline |
Definition at line 1677 of file APFloat.h.
References RHS, and ~DoubleAPFloat().
APFloat::opStatus llvm::detail::DoubleAPFloat::remainder | ( | const DoubleAPFloat & | RHS | ) |
Definition at line 5130 of file APFloat.cpp.
References assert(), bitcastToAPInt(), llvm::APFloat::bitcastToAPInt(), llvm::APFloat::remainder(), RHS, llvm::semPPCDoubleDouble, and llvm::semPPCDoubleDoubleLegacy.
APFloat::opStatus llvm::detail::DoubleAPFloat::roundToIntegral | ( | APFloat::roundingMode | RM | ) |
Definition at line 5160 of file APFloat.cpp.
References llvm::detail::abs(), llvm::APFloat::add(), assert(), llvm::detail::fastTwoSum(), getFirst(), llvm::APFloat::getOne(), getSecond(), llvm::Hi, isNegative(), llvm::APFloat::isNegative(), llvm::Lo, llvm::detail::rmNearestTiesToAway, llvm::detail::rmNearestTiesToEven, llvm::detail::rmTowardNegative, llvm::detail::rmTowardPositive, llvm::detail::rmTowardZero, llvm::APFloat::roundToIntegral(), and llvm::semPPCDoubleDouble.
APFloat::opStatus llvm::detail::DoubleAPFloat::subtract | ( | const DoubleAPFloat & | RHS, |
roundingMode | RM | ||
) |
Definition at line 5026 of file APFloat.cpp.
References add(), changeSign(), and RHS.
void llvm::detail::DoubleAPFloat::toString | ( | SmallVectorImpl< char > & | Str, |
unsigned | FormatPrecision, | ||
unsigned | FormatMaxPadding, | ||
bool | TruncateZero = true |
||
) | const |
Definition at line 5806 of file APFloat.cpp.
References assert(), bitcastToAPInt(), llvm::semPPCDoubleDouble, llvm::semPPCDoubleDoubleLegacy, and llvm::APFloat::toString().
|
friend |
|
friend |
Definition at line 5351 of file APFloat.cpp.
|
friend |
Definition at line 5824 of file APFloat.cpp.
|
friend |
Referenced by next().