FLANG
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
Fortran::evaluate::value::Real< WORD, PREC > Class Template Reference

Public Types

using Word = WORD
 
using Fraction = Integer< binaryPrecision >
 

Public Member Functions

constexpr Real (const Real &)=default
 
constexpr Real (Real &&)=default
 
constexpr Real (const Word &bits)
 
constexpr Realoperator= (const Real &)=default
 
constexpr Realoperator= (Real &&)=default
 
constexpr bool operator== (const Real &that) const
 
constexpr bool IsSignBitSet () const
 
constexpr bool IsNegative () const
 
constexpr bool IsNotANumber () const
 
constexpr bool IsQuietNaN () const
 
constexpr bool IsSignalingNaN () const
 
constexpr bool IsInfinite () const
 
constexpr bool IsFinite () const
 
constexpr bool IsZero () const
 
constexpr bool IsSubnormal () const
 
constexpr bool IsNormal () const
 
constexpr Real ABS () const
 
constexpr Real SetSign (bool toNegative) const
 
constexpr Real SIGN (const Real &x) const
 
constexpr Real Negate () const
 
Relation Compare (const Real &) const
 
ValueWithRealFlags< RealAdd (const Real &, Rounding rounding=TargetCharacteristics::defaultRounding) const
 
ValueWithRealFlags< RealSubtract (const Real &y, Rounding rounding=TargetCharacteristics::defaultRounding) const
 
ValueWithRealFlags< RealMultiply (const Real &, Rounding rounding=TargetCharacteristics::defaultRounding) const
 
ValueWithRealFlags< RealDivide (const Real &, Rounding rounding=TargetCharacteristics::defaultRounding) const
 
ValueWithRealFlags< RealSQRT (Rounding rounding=TargetCharacteristics::defaultRounding) const
 
ValueWithRealFlags< RealNEAREST (bool upward) const
 
ValueWithRealFlags< RealHYPOT (const Real &, Rounding rounding=TargetCharacteristics::defaultRounding) const
 
ValueWithRealFlags< RealDIM (const Real &, Rounding rounding=TargetCharacteristics::defaultRounding) const
 
ValueWithRealFlags< RealMOD (const Real &, Rounding rounding=TargetCharacteristics::defaultRounding) const
 
ValueWithRealFlags< RealMODULO (const Real &, Rounding rounding=TargetCharacteristics::defaultRounding) const
 
template<typename INT >
constexpr INT EXPONENT () const
 
Real RRSPACING () const
 
Real SPACING () const
 
Real SET_EXPONENT (std::int64_t) const
 
Real FRACTION () const
 
template<typename INT >
ValueWithRealFlags< RealSCALE (const INT &by, Rounding rounding=TargetCharacteristics::defaultRounding) const
 
constexpr Real FlushSubnormalToZero () const
 
ValueWithRealFlags< RealToWholeNumber (common::RoundingMode=common::RoundingMode::ToZero) const
 
template<typename INT >
constexpr ValueWithRealFlags< INT > ToInteger (common::RoundingMode mode=common::RoundingMode::ToZero) const
 
constexpr Word RawBits () const
 
constexpr int Exponent () const
 
constexpr Fraction GetFraction () const
 
constexpr int UnbiasedExponent () const
 
std::string DumpHexadecimal () const
 
llvm::raw_ostream & AsFortran (llvm::raw_ostream &, int kind, bool minimal=false) const
 

Static Public Member Functions

static constexpr Real EPSILON ()
 
static constexpr Real HUGE ()
 
static constexpr Real TINY ()
 
static constexpr Real NotANumber ()
 
static constexpr Real PositiveZero ()
 
static constexpr Real NegativeZero ()
 
static constexpr Real Infinity (bool negative)
 
template<typename INT >
static ValueWithRealFlags< RealFromInteger (const INT &n, bool isUnsigned=false, Rounding rounding=TargetCharacteristics::defaultRounding)
 
template<typename A >
static ValueWithRealFlags< RealConvert (const A &x, Rounding rounding=TargetCharacteristics::defaultRounding)
 
static ValueWithRealFlags< RealRead (const char *&, Rounding rounding=TargetCharacteristics::defaultRounding)
 

Static Public Attributes

static constexpr int binaryPrecision {PREC}
 
static constexpr common::RealCharacteristics realChars {PREC}
 
static constexpr int exponentBias {realChars.exponentBias}
 
static constexpr int exponentBits {realChars.exponentBits}
 
static constexpr int isImplicitMSB {realChars.isImplicitMSB}
 
static constexpr int maxExponent {realChars.maxExponent}
 
static constexpr int significandBits {realChars.significandBits}
 
static constexpr int bits {Word::bits}
 
static constexpr int DIGITS {binaryPrecision}
 
static constexpr int PRECISION {realChars.decimalPrecision}
 
static constexpr int RANGE {realChars.decimalRange}
 
static constexpr int MAXEXPONENT {maxExponent - exponentBias}
 
static constexpr int MINEXPONENT {2 - exponentBias}
 

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