LLVM 20.0.0git
Classes | Public Member Functions | Friends | List of all members
llvm::detail::IEEEFloat Class Referencefinal

#include "llvm/ADT/APFloat.h"

Public Member Functions

bool needsCleanup () const
 Returns whether this instance allocated memory.
 
bool operator== (const IEEEFloat &) const =delete
 The definition of equality is not straightforward for floating point, so we won't use operator==.
 
cmpResult compare (const IEEEFloat &) const
 IEEE comparison with another floating point number (NaNs compare unordered, 0==-0).
 
bool bitwiseIsEqual (const IEEEFloat &) const
 Bitwise comparison for equality (QNaNs compare equal, 0!=-0).
 
unsigned int convertToHexString (char *dst, unsigned int hexDigits, bool upperCase, roundingMode) const
 Write out a hexadecimal representation of the floating point value to DST, which must be of sufficient size, in the C99 form [-]0xh.hhhhp[+-]d.
 
IEEEFloatoperator= (const IEEEFloat &)
 
IEEEFloatoperator= (IEEEFloat &&)
 
void toString (SmallVectorImpl< char > &Str, unsigned FormatPrecision=0, unsigned FormatMaxPadding=3, bool TruncateZero=true) const
 Converts this value into a decimal string.
 
bool getExactInverse (APFloat *inv) const
 If this value has an exact multiplicative inverse, store it in inv and return true.
 
LLVM_READONLY int getExactLog2Abs () const
 
LLVM_READONLY int getExactLog2 () const
 
cmpResult compareAbsoluteValue (const IEEEFloat &) const
 
Constructors
 IEEEFloat (const fltSemantics &)
 
 IEEEFloat (const fltSemantics &, integerPart)
 
 IEEEFloat (const fltSemantics &, uninitializedTag)
 
 IEEEFloat (const fltSemantics &, const APInt &)
 
 IEEEFloat (double d)
 
 IEEEFloat (float f)
 
 IEEEFloat (const IEEEFloat &)
 
 IEEEFloat (IEEEFloat &&)
 
 ~IEEEFloat ()
 
Arithmetic
opStatus add (const IEEEFloat &, roundingMode)
 
opStatus subtract (const IEEEFloat &, roundingMode)
 
opStatus multiply (const IEEEFloat &, roundingMode)
 
opStatus divide (const IEEEFloat &, roundingMode)
 
opStatus remainder (const IEEEFloat &)
 IEEE remainder.
 
opStatus mod (const IEEEFloat &)
 C fmod, or llvm frem.
 
opStatus fusedMultiplyAdd (const IEEEFloat &, const IEEEFloat &, roundingMode)
 
opStatus roundToIntegral (roundingMode)
 
opStatus next (bool nextDown)
 IEEE-754R 5.3.1: nextUp/nextDown.
 
Sign operations.
void changeSign ()
 
Conversions
opStatus convert (const fltSemantics &, roundingMode, bool *)
 IEEEFloat::convert - convert a value of one floating point type to another.
 
opStatus convertToInteger (MutableArrayRef< integerPart >, unsigned int, bool, roundingMode, bool *) const
 
opStatus convertFromAPInt (const APInt &, bool, roundingMode)
 
opStatus convertFromSignExtendedInteger (const integerPart *, unsigned int, bool, roundingMode)
 
opStatus convertFromZeroExtendedInteger (const integerPart *, unsigned int, bool, roundingMode)
 
Expected< opStatusconvertFromString (StringRef, roundingMode)
 
APInt bitcastToAPInt () const
 
double convertToDouble () const
 
float convertToFloat () const
 
IEEE-754R 5.7.2 General operations.
bool isNegative () const
 IEEE-754R isSignMinus: Returns true if and only if the current value is negative.
 
bool isNormal () const
 IEEE-754R isNormal: Returns true if and only if the current value is normal.
 
bool isFinite () const
 Returns true if and only if the current value is zero, subnormal, or normal.
 
bool isZero () const
 Returns true if and only if the float is plus or minus zero.
 
bool isDenormal () const
 IEEE-754R isSubnormal(): Returns true if and only if the float is a denormal.
 
bool isInfinity () const
 IEEE-754R isInfinite(): Returns true if and only if the float is infinity.
 
bool isNaN () const
 Returns true if and only if the float is a quiet or signaling NaN.
 
bool isSignaling () const
 Returns true if and only if the float is a signaling NaN.
 
Special value setters.
void makeLargest (bool Neg=false)
 Make this number the largest magnitude normal number in the given semantics.
 
void makeSmallest (bool Neg=false)
 Make this number the smallest magnitude denormal number in the given semantics.
 
void makeNaN (bool SNaN=false, bool Neg=false, const APInt *fill=nullptr)
 
void makeInf (bool Neg=false)
 
void makeZero (bool Neg=false)
 
void makeQuiet ()
 
void makeSmallestNormalized (bool Negative=false)
 Returns the smallest (by magnitude) normalized finite number in the given semantics.
 

Friends

hash_code hash_value (const IEEEFloat &Arg)
 Overload to compute a hash code for an APFloat value.
 
int ilogb (const IEEEFloat &Arg)
 Returns the exponent of the internal representation of the APFloat.
 
IEEEFloat scalbn (IEEEFloat X, int Exp, roundingMode)
 Returns: X * 2^Exp for integral exponents.
 
IEEEFloat frexp (const IEEEFloat &X, int &Exp, roundingMode)
 

Simple Queries

fltCategory getCategory () const
 
const fltSemanticsgetSemantics () const
 
bool isNonZero () const
 
bool isFiniteNonZero () const
 
bool isPosZero () const
 
bool isNegZero () const
 
bool isSmallest () const
 Returns true if and only if the number has the smallest possible non-zero magnitude in the current semantics.
 
bool isSmallestNormalized () const
 Returns true if this is the smallest (by magnitude) normalized finite number in the given semantics.
 
bool isLargest () const
 Returns true if and only if the number has the largest possible finite magnitude in the current semantics.
 
bool isInteger () const
 Returns true if and only if the number is an exact integer.
 

Detailed Description

Definition at line 395 of file APFloat.h.

Constructor & Destructor Documentation

◆ IEEEFloat() [1/8]

llvm::detail::IEEEFloat::IEEEFloat ( const fltSemantics ourSemantics)

Definition at line 1188 of file APFloat.cpp.

References llvm::fltSemantics::hasZero, makeSmallestNormalized(), and makeZero().

◆ IEEEFloat() [2/8]

llvm::detail::IEEEFloat::IEEEFloat ( const fltSemantics ourSemantics,
integerPart  value 
)

◆ IEEEFloat() [3/8]

llvm::detail::IEEEFloat::IEEEFloat ( const fltSemantics ourSemantics,
uninitializedTag  tag 
)

Definition at line 1201 of file APFloat.cpp.

◆ IEEEFloat() [4/8]

llvm::detail::IEEEFloat::IEEEFloat ( const fltSemantics Sem,
const APInt API 
)

Definition at line 4187 of file APFloat.cpp.

◆ IEEEFloat() [5/8]

llvm::detail::IEEEFloat::IEEEFloat ( double  d)
explicit

Definition at line 4195 of file APFloat.cpp.

References llvm::APInt::doubleToBits(), and llvm::semIEEEdouble.

◆ IEEEFloat() [6/8]

llvm::detail::IEEEFloat::IEEEFloat ( float  f)
explicit

Definition at line 4191 of file APFloat.cpp.

References llvm::APInt::floatToBits(), and llvm::semIEEEsingle.

◆ IEEEFloat() [7/8]

llvm::detail::IEEEFloat::IEEEFloat ( const IEEEFloat rhs)

Definition at line 1204 of file APFloat.cpp.

◆ IEEEFloat() [8/8]

llvm::detail::IEEEFloat::IEEEFloat ( IEEEFloat &&  rhs)

Definition at line 1209 of file APFloat.cpp.

◆ ~IEEEFloat()

llvm::detail::IEEEFloat::~IEEEFloat ( )

Definition at line 1213 of file APFloat.cpp.

Member Function Documentation

◆ add()

APFloat::opStatus llvm::detail::IEEEFloat::add ( const IEEEFloat rhs,
roundingMode  rounding_mode 
)

Definition at line 2123 of file APFloat.cpp.

Referenced by remainder(), and roundToIntegral().

◆ bitcastToAPInt()

APInt llvm::detail::IEEEFloat::bitcastToAPInt ( ) const

◆ bitwiseIsEqual()

bool llvm::detail::IEEEFloat::bitwiseIsEqual ( const IEEEFloat rhs) const

Bitwise comparison for equality (QNaNs compare equal, 0!=-0).

Definition at line 1161 of file APFloat.cpp.

References llvm::detail::fcInfinity, llvm::detail::fcZero, and isFiniteNonZero().

◆ changeSign()

void llvm::detail::IEEEFloat::changeSign ( )

Definition at line 2079 of file APFloat.cpp.

References isNaN(), isZero(), llvm::fltSemantics::nanEncoding, and llvm::NegativeZero.

Referenced by roundToIntegral().

◆ compare()

APFloat::cmpResult llvm::detail::IEEEFloat::compare ( const IEEEFloat rhs) const

◆ compareAbsoluteValue()

APFloat::cmpResult llvm::detail::IEEEFloat::compareAbsoluteValue ( const IEEEFloat rhs) const

◆ convert()

APFloat::opStatus llvm::detail::IEEEFloat::convert ( const fltSemantics toSemantics,
roundingMode  rounding_mode,
bool losesInfo 
)

IEEEFloat::convert - convert a value of one floating point type to another.

The return value corresponds to the IEEE754 exceptions. *losesInfo records whether the transformation lost information, i.e. whether converting the result back to the original type will produce the original value (this is almost the same as return value==fsOK, but there are edge cases where this is not so).

Definition at line 2533 of file APFloat.cpp.

References llvm::detail::fcInfinity, llvm::detail::fcNaN, llvm::detail::fcZero, llvm::fltSemantics::hasZero, isFiniteNonZero(), isSignaling(), llvm::lfExactlyZero, makeNaN(), makeQuiet(), makeSmallestNormalized(), llvm::fltSemantics::minExponent, llvm::fltSemantics::nanEncoding, llvm::NanOnly, llvm::NegativeZero, llvm::fltSemantics::nonFiniteBehavior, llvm::detail::opInexact, llvm::detail::opInvalidOp, llvm::detail::opOK, llvm::partCountForBits(), llvm::fltSemantics::precision, llvm::semX87DoubleExtended, llvm::shiftRight(), llvm::APInt::tcAssign(), llvm::APInt::tcSet(), llvm::APInt::tcSetBit(), and llvm::APInt::tcShiftLeft().

Referenced by llvm::APFloat::convert(), and remainder().

◆ convertFromAPInt()

APFloat::opStatus llvm::detail::IEEEFloat::convertFromAPInt ( const APInt Val,
bool  isSigned,
roundingMode  rounding_mode 
)

◆ convertFromSignExtendedInteger()

APFloat::opStatus llvm::detail::IEEEFloat::convertFromSignExtendedInteger ( const integerPart src,
unsigned int  srcCount,
bool  isSigned,
roundingMode  rounding_mode 
)

◆ convertFromString()

Expected< APFloat::opStatus > llvm::detail::IEEEFloat::convertFromString ( StringRef  str,
roundingMode  rounding_mode 
)

◆ convertFromZeroExtendedInteger()

APFloat::opStatus llvm::detail::IEEEFloat::convertFromZeroExtendedInteger ( const integerPart parts,
unsigned int  width,
bool  isSigned,
roundingMode  rounding_mode 
)

◆ convertToDouble()

double llvm::detail::IEEEFloat::convertToDouble ( ) const

◆ convertToFloat()

float llvm::detail::IEEEFloat::convertToFloat ( ) const

◆ convertToHexString()

unsigned int llvm::detail::IEEEFloat::convertToHexString ( char dst,
unsigned int  hexDigits,
bool  upperCase,
roundingMode  rounding_mode 
) const

Write out a hexadecimal representation of the floating point value to DST, which must be of sufficient size, in the C99 form [-]0xh.hhhhp[+-]d.

Return the number of characters written, excluding the terminating NUL.

Definition at line 3346 of file APFloat.cpp.

References llvm::detail::fcInfinity, llvm::detail::fcNaN, llvm::detail::fcNormal, llvm::detail::fcZero, llvm::infinityL, llvm::infinityU, llvm::NaNL, and llvm::NaNU.

◆ convertToInteger()

APFloat::opStatus llvm::detail::IEEEFloat::convertToInteger ( MutableArrayRef< integerPart parts,
unsigned int  width,
bool  isSigned,
roundingMode  rounding_mode,
bool isExact 
) const

◆ divide()

APFloat::opStatus llvm::detail::IEEEFloat::divide ( const IEEEFloat rhs,
roundingMode  rounding_mode 
)

◆ fusedMultiplyAdd()

APFloat::opStatus llvm::detail::IEEEFloat::fusedMultiplyAdd ( const IEEEFloat multiplicand,
const IEEEFloat addend,
roundingMode  rounding_mode 
)

◆ getCategory()

fltCategory llvm::detail::IEEEFloat::getCategory ( ) const
inline

Definition at line 526 of file APFloat.h.

Referenced by llvm::APFloat::getCategory(), and isSmallestNormalized().

◆ getExactInverse()

bool llvm::detail::IEEEFloat::getExactInverse ( APFloat inv) const

If this value has an exact multiplicative inverse, store it in inv and return true.

Definition at line 4519 of file APFloat.cpp.

References assert(), divide(), isDenormal(), isFiniteNonZero(), and llvm::fltSemantics::precision.

◆ getExactLog2()

LLVM_READONLY int llvm::detail::IEEEFloat::getExactLog2 ( ) const
inline

Definition at line 605 of file APFloat.h.

References getExactLog2Abs(), and isNegative().

◆ getExactLog2Abs()

int llvm::detail::IEEEFloat::getExactLog2Abs ( ) const

◆ getSemantics()

const fltSemantics & llvm::detail::IEEEFloat::getSemantics ( ) const
inline

Definition at line 527 of file APFloat.h.

◆ isDenormal()

bool llvm::detail::IEEEFloat::isDenormal ( ) const

IEEE-754R isSubnormal(): Returns true if and only if the float is a denormal.

Definition at line 1020 of file APFloat.cpp.

References isFiniteNonZero(), llvm::fltSemantics::minExponent, llvm::fltSemantics::precision, and llvm::APInt::tcExtractBit().

Referenced by getExactInverse(), and isNormal().

◆ isFinite()

bool llvm::detail::IEEEFloat::isFinite ( ) const
inline

Returns true if and only if the current value is zero, subnormal, or normal.

This means that the value is not infinite or NaN.

Definition at line 503 of file APFloat.h.

References isInfinity(), and isNaN().

Referenced by fusedMultiplyAdd(), isFiniteNonZero(), and isInteger().

◆ isFiniteNonZero()

bool llvm::detail::IEEEFloat::isFiniteNonZero ( ) const
inline

◆ isInfinity()

bool llvm::detail::IEEEFloat::isInfinity ( ) const
inline

IEEE-754R isInfinite(): Returns true if and only if the float is infinity.

Definition at line 513 of file APFloat.h.

References llvm::detail::fcInfinity.

Referenced by isFinite(), and roundToIntegral().

◆ isInteger()

bool llvm::detail::IEEEFloat::isInteger ( ) const

Returns true if and only if the number is an exact integer.

Definition at line 1153 of file APFloat.cpp.

References llvm::detail::cmpEqual, compare(), isFinite(), llvm::detail::rmTowardZero, and llvm::truncated.

◆ isLargest()

bool llvm::detail::IEEEFloat::isLargest ( ) const

Returns true if and only if the number has the largest possible finite magnitude in the current semantics.

Definition at line 1136 of file APFloat.cpp.

References llvm::AllOnes, llvm::APFloat::hasSignificand(), isFiniteNonZero(), llvm::fltSemantics::maxExponent, llvm::fltSemantics::nanEncoding, llvm::NanOnly, and llvm::fltSemantics::nonFiniteBehavior.

◆ isNaN()

bool llvm::detail::IEEEFloat::isNaN ( ) const
inline

Returns true if and only if the float is a quiet or signaling NaN.

Definition at line 516 of file APFloat.h.

References llvm::detail::fcNaN.

Referenced by changeSign(), isFinite(), and roundToIntegral().

◆ isNegative()

bool llvm::detail::IEEEFloat::isNegative ( ) const
inline

IEEE-754R isSignMinus: Returns true if and only if the current value is negative.

This applies to zeros and NaNs as well.

Definition at line 491 of file APFloat.h.

Referenced by getExactLog2(), llvm::APFloat::isNegative(), isNegZero(), isPosZero(), and roundToIntegral().

◆ isNegZero()

bool llvm::detail::IEEEFloat::isNegZero ( ) const
inline

Definition at line 531 of file APFloat.h.

References isNegative(), and isZero().

◆ isNonZero()

bool llvm::detail::IEEEFloat::isNonZero ( ) const
inline

Definition at line 528 of file APFloat.h.

◆ isNormal()

bool llvm::detail::IEEEFloat::isNormal ( ) const
inline

IEEE-754R isNormal: Returns true if and only if the current value is normal.

This implies that the current value of the float is not zero, subnormal, infinite, or NaN following the definition of normality from IEEE-754R.

Definition at line 497 of file APFloat.h.

References isDenormal(), and isFiniteNonZero().

◆ isPosZero()

bool llvm::detail::IEEEFloat::isPosZero ( ) const
inline

Definition at line 530 of file APFloat.h.

References isNegative(), and isZero().

◆ isSignaling()

bool llvm::detail::IEEEFloat::isSignaling ( ) const

Returns true if and only if the float is a signaling NaN.

Definition at line 4577 of file APFloat.cpp.

References llvm::FiniteOnly, llvm::NanOnly, and llvm::APInt::tcExtractBit().

Referenced by convert(), llvm::APFloat::isSignaling(), and roundToIntegral().

◆ isSmallest()

bool llvm::detail::IEEEFloat::isSmallest ( ) const

Returns true if and only if the number has the smallest possible non-zero magnitude in the current semantics.

Definition at line 1026 of file APFloat.cpp.

References isFiniteNonZero(), and llvm::fltSemantics::minExponent.

◆ isSmallestNormalized()

bool llvm::detail::IEEEFloat::isSmallestNormalized ( ) const

Returns true if this is the smallest (by magnitude) normalized finite number in the given semantics.

Definition at line 1034 of file APFloat.cpp.

References llvm::detail::fcNormal, getCategory(), and llvm::fltSemantics::minExponent.

◆ isZero()

bool llvm::detail::IEEEFloat::isZero ( ) const
inline

Returns true if and only if the float is plus or minus zero.

Definition at line 506 of file APFloat.h.

Referenced by changeSign(), divide(), isFiniteNonZero(), isNegZero(), isPosZero(), mod(), multiply(), remainder(), and roundToIntegral().

◆ makeInf()

void llvm::detail::IEEEFloat::makeInf ( bool  Neg = false)

◆ makeLargest()

void llvm::detail::IEEEFloat::makeLargest ( bool  Neg = false)

Make this number the largest magnitude normal number in the given semantics.

Definition at line 4125 of file APFloat.cpp.

References llvm::AllOnes, llvm::fcNormal, llvm_unreachable, and llvm::NanOnly.

◆ makeNaN()

void llvm::detail::IEEEFloat::makeNaN ( bool  SNaN = false,
bool  Neg = false,
const APInt fill = nullptr 
)

◆ makeQuiet()

void llvm::detail::IEEEFloat::makeQuiet ( )

Definition at line 4767 of file APFloat.cpp.

References assert(), llvm::NanOnly, and llvm::APInt::tcSetBit().

Referenced by convert(), and roundToIntegral().

◆ makeSmallest()

void llvm::detail::IEEEFloat::makeSmallest ( bool  Neg = false)

Make this number the smallest magnitude denormal number in the given semantics.

Definition at line 4157 of file APFloat.cpp.

References llvm::fcNormal, llvm_unreachable, and llvm::APInt::tcSet().

◆ makeSmallestNormalized()

void llvm::detail::IEEEFloat::makeSmallestNormalized ( bool  Negative = false)

Returns the smallest (by magnitude) normalized finite number in the given semantics.

Parameters
Negative- True iff the number should be negative

Definition at line 4171 of file APFloat.cpp.

References llvm::fcNormal, llvm_unreachable, and llvm::APInt::tcSetBit().

Referenced by convert(), and IEEEFloat().

◆ makeZero()

void llvm::detail::IEEEFloat::makeZero ( bool  Neg = false)

◆ mod()

APFloat::opStatus llvm::detail::IEEEFloat::mod ( const IEEEFloat rhs)

◆ multiply()

APFloat::opStatus llvm::detail::IEEEFloat::multiply ( const IEEEFloat rhs,
roundingMode  rounding_mode 
)

◆ needsCleanup()

bool llvm::detail::IEEEFloat::needsCleanup ( ) const
inline

Returns whether this instance allocated memory.

Definition at line 413 of file APFloat.h.

◆ next()

APFloat::opStatus llvm::detail::IEEEFloat::next ( bool  nextDown)

IEEE-754R 5.3.1: nextUp/nextDown.

IEEE-754R 2008 5.3.1: nextUp/nextDown.

NOTE since nextDown(x) = -nextUp(-x), we only implement nextUp with appropriate sign switching before/after the computation.

Definition at line 4593 of file APFloat.cpp.

References assert(), llvm::fcNormal, llvm::fcZero, llvm::FiniteOnly, llvm::APFloat::hasSignificand(), llvm::NanOnly, llvm::NegativeZero, llvm::APInt::tcDecrement(), llvm::APInt::tcSet(), and llvm::APInt::tcSetBit().

◆ operator=() [1/2]

IEEEFloat & llvm::detail::IEEEFloat::operator= ( const IEEEFloat rhs)

Definition at line 995 of file APFloat.cpp.

◆ operator=() [2/2]

IEEEFloat & llvm::detail::IEEEFloat::operator= ( IEEEFloat &&  rhs)

Definition at line 1007 of file APFloat.cpp.

References llvm::semBogus.

◆ operator==()

bool llvm::detail::IEEEFloat::operator== ( const IEEEFloat ) const
delete

The definition of equality is not straightforward for floating point, so we won't use operator==.

Use one of the following, or write whatever it is you really mean.

◆ remainder()

APFloat::opStatus llvm::detail::IEEEFloat::remainder ( const IEEEFloat rhs)

◆ roundToIntegral()

APFloat::opStatus llvm::detail::IEEEFloat::roundToIntegral ( roundingMode  rounding_mode)

◆ subtract()

APFloat::opStatus llvm::detail::IEEEFloat::subtract ( const IEEEFloat rhs,
roundingMode  rounding_mode 
)

Definition at line 2129 of file APFloat.cpp.

Referenced by mod(), remainder(), and roundToIntegral().

◆ toString()

void llvm::detail::IEEEFloat::toString ( SmallVectorImpl< char > &  Str,
unsigned  FormatPrecision = 0,
unsigned  FormatMaxPadding = 3,
bool  TruncateZero = true 
) const

Converts this value into a decimal string.

Parameters
FormatPrecisionThe maximum number of digits of precision to output. If there are fewer digits available, zero padding will not be used unless the value is integral and small enough to be expressed in FormatPrecision digits. 0 means to use the natural precision of the number.
FormatMaxPaddingThe maximum number of zeros to consider inserting before falling back to scientific notation. 0 means to always use scientific notation.
TruncateZeroIndicate whether to remove the trailing zero in fraction part or not. Also setting this parameter to false forcing producing of output more similar to default printf behavior. Specifically the lower e is used as exponent delimiter and exponent always contains no less than two digits.

Number Precision MaxPadding Result


1.01E+4 5 2 10100 1.01E+4 4 2 1.01E+4 1.01E+4 5 1 1.01E+4 1.01E-2 5 2 0.0101 1.01E-2 4 2 0.0101 1.01E-2 4 1 1.01E-2

Definition at line 4476 of file APFloat.cpp.

References llvm::fcNormal, llvm::fcZero, and llvm::partCountForBits().

Friends And Related Function Documentation

◆ frexp

IEEEFloat frexp ( const IEEEFloat X,
int &  Exp,
roundingMode  RM 
)
friend

Definition at line 4812 of file APFloat.cpp.

◆ hash_value

hash_code hash_value ( const IEEEFloat Arg)
friend

Overload to compute a hash code for an APFloat value.

Note that the use of hash codes for floating point values is in general frought with peril. Equality is hard to define for these values. For example, should negative and positive zero hash to different codes? Are they equal or not? This hash value implementation specifically emphasizes producing different codes for different inputs in order to be used in canonicalization and memoization. As such, equality is bitwiseIsEqual, and 0 != -0.

Definition at line 3495 of file APFloat.cpp.

◆ ilogb

int ilogb ( const IEEEFloat Arg)
friend

Returns the exponent of the internal representation of the APFloat.

Because the radix of APFloat is 2, this is equivalent to floor(log2(x)). For special APFloat values, this returns special error codes:

NaN -> IEK_NaN 0 -> IEK_Zero Inf -> IEK_Inf

Definition at line 4773 of file APFloat.cpp.

Referenced by mod().

◆ scalbn

IEEEFloat scalbn ( IEEEFloat  X,
int  Exp,
roundingMode  RoundingMode 
)
friend

Returns: X * 2^Exp for integral exponents.

Definition at line 4791 of file APFloat.cpp.

Referenced by mod().


The documentation for this class was generated from the following files: