LLVM: include/llvm/ADT/APFloat.h File Reference (original) (raw)

This file declares a class to represent arbitrary precision floating point values and provide a variety of arithmetic operations on them. More...

Go to the source code of this file.

Namespaces
namespace llvm
This is an optimization pass for GlobalISel generic memory operations.
namespace llvm::detail
A self-contained host- and target-independent arbitrary-precision floating-point software implementation.
Macros
#define APFLOAT_DISPATCH_ON_SEMANTICS(METHOD_CALL)
Typedefs
using llvm::detail::integerPart = APFloatBase::integerPart
using llvm::detail::uninitializedTag = APFloatBase::uninitializedTag
using llvm::detail::roundingMode = APFloatBase::roundingMode
using llvm::detail::opStatus = APFloatBase::opStatus
using llvm::detail::cmpResult = APFloatBase::cmpResult
using llvm::detail::fltCategory = APFloatBase::fltCategory
using llvm::detail::ExponentType = APFloatBase::ExponentType
Functions
LLVM_ABI hash_code llvm::detail::hash_value (const IEEEFloat &Arg)
LLVM_ABI int llvm::detail::ilogb (const IEEEFloat &Arg)
LLVM_ABI IEEEFloat llvm::detail::scalbn (IEEEFloat X, int Exp, roundingMode RoundingMode)
LLVM_ABI IEEEFloat llvm::detail::frexp (const IEEEFloat &Val, int &Exp, roundingMode RM)
LLVM_ABI hash_code llvm::detail::hash_value (const DoubleAPFloat &Arg)
LLVM_ABI DoubleAPFloat llvm::detail::scalbn (const DoubleAPFloat &Arg, int Exp, roundingMode RM)
LLVM_ABI DoubleAPFloat llvm::detail::frexp (const DoubleAPFloat &X, int &Exp, roundingMode)
LLVM_ABI hash_code llvm::hash_value (const APFloat &Arg)
See friend declarations above.
int llvm::ilogb (const APFloat &Arg)
Returns the exponent of the internal representation of the APFloat.
APFloat llvm::scalbn (APFloat X, int Exp, APFloat::roundingMode RM)
Returns: X * 2^Exp for integral exponents.
APFloat llvm::frexp (const APFloat &X, int &Exp, APFloat::roundingMode RM)
Equivalent of C standard library function.
APFloat llvm::abs (APFloat X)
Returns the absolute value of the argument.
APFloat llvm::neg (APFloat X)
Returns the negated value of the argument.
LLVM_READONLY APFloat llvm::minnum (const APFloat &A, const APFloat &B)
Implements IEEE-754 2008 minNum semantics.
LLVM_READONLY APFloat llvm::maxnum (const APFloat &A, const APFloat &B)
Implements IEEE-754 2008 maxNum semantics.
LLVM_READONLY APFloat llvm::minimum (const APFloat &A, const APFloat &B)
Implements IEEE 754-2019 minimum semantics.
LLVM_READONLY APFloat llvm::minimumnum (const APFloat &A, const APFloat &B)
Implements IEEE 754-2019 minimumNumber semantics.
LLVM_READONLY APFloat llvm::maximum (const APFloat &A, const APFloat &B)
Implements IEEE 754-2019 maximum semantics.
LLVM_READONLY APFloat llvm::maximumnum (const APFloat &A, const APFloat &B)
Implements IEEE 754-2019 maximumNumber semantics.
raw_ostream & llvm::operator<< (raw_ostream &OS, const APFloat &V)
Variables
static constexpr uninitializedTag llvm::detail::uninitialized = APFloatBase::uninitialized
static constexpr roundingMode llvm::detail::rmNearestTiesToEven
static constexpr roundingMode llvm::detail::rmNearestTiesToAway
static constexpr roundingMode llvm::detail::rmTowardNegative = APFloatBase::rmTowardNegative
static constexpr roundingMode llvm::detail::rmTowardPositive = APFloatBase::rmTowardPositive
static constexpr roundingMode llvm::detail::rmTowardZero = APFloatBase::rmTowardZero
static constexpr unsigned llvm::detail::integerPartWidth = APFloatBase::integerPartWidth
static constexpr cmpResult llvm::detail::cmpEqual = APFloatBase::cmpEqual
static constexpr cmpResult llvm::detail::cmpLessThan = APFloatBase::cmpLessThan
static constexpr cmpResult llvm::detail::cmpGreaterThan = APFloatBase::cmpGreaterThan
static constexpr cmpResult llvm::detail::cmpUnordered = APFloatBase::cmpUnordered
static constexpr opStatus llvm::detail::opOK = APFloatBase::opOK
static constexpr opStatus llvm::detail::opInvalidOp = APFloatBase::opInvalidOp
static constexpr opStatus llvm::detail::opDivByZero = APFloatBase::opDivByZero
static constexpr opStatus llvm::detail::opOverflow = APFloatBase::opOverflow
static constexpr opStatus llvm::detail::opUnderflow = APFloatBase::opUnderflow
static constexpr opStatus llvm::detail::opInexact = APFloatBase::opInexact
static constexpr fltCategory llvm::detail::fcInfinity = APFloatBase::fcInfinity
static constexpr fltCategory llvm::detail::fcNaN = APFloatBase::fcNaN
static constexpr fltCategory llvm::detail::fcNormal = APFloatBase::fcNormal
static constexpr fltCategory llvm::detail::fcZero = APFloatBase::fcZero

This file declares a class to represent arbitrary precision floating point values and provide a variety of arithmetic operations on them.

Definition in file APFloat.h.

APFLOAT_DISPATCH_ON_SEMANTICS

#define APFLOAT_DISPATCH_ON_SEMANTICS ( METHOD_CALL )

Value:

do { \

if (usesLayout(getSemantics())) \

return U.IEEE.METHOD_CALL; \

if (usesLayout(getSemantics())) \

return U.Double.METHOD_CALL; \

llvm_unreachable("Unexpected semantics"); \

} while (false)

Definition at line 26 of file APFloat.h.

Referenced by llvm::APFloat::bitcastToAPInt(), llvm::APFloat::changeSign(), llvm::APFloat::convertFromAPInt(), llvm::APFloat::convertFromString(), llvm::APFloat::convertToHexString(), llvm::APFloat::convertToInteger(), llvm::APFloat::getExactLog2Abs(), llvm::APFloat::isDenormal(), llvm::APFloat::isInteger(), llvm::APFloat::isLargest(), llvm::APFloat::isSmallest(), llvm::APFloat::isSmallestNormalized(), llvm::APFloat::needsCleanup(), llvm::APFloat::next(), llvm::APFloat::roundToIntegral(), and llvm::APFloat::toString().