RetroArch
Public Member Functions | Static Public Member Functions | Private Attributes | Static Private Attributes | List of all members
internal::Double Class Reference

#include <ieee754.h>

Public Member Functions

 Double ()
 
 Double (double d)
 
 Double (uint64_t u)
 
double Value () const
 
uint64_t Uint64Value () const
 
double NextPositiveDouble () const
 
bool Sign () const
 
uint64_t Significand () const
 
int Exponent () const
 
bool IsNan () const
 
bool IsInf () const
 
bool IsNanOrInf () const
 
bool IsNormal () const
 
bool IsZero () const
 
uint64_t IntegerSignificand () const
 
int IntegerExponent () const
 
uint64_t ToBias () const
 

Static Public Member Functions

static unsigned EffectiveSignificandSize (int order)
 

Private Attributes

union {
   double   d_
 
   uint64_t   u_
 
}; 
 

Static Private Attributes

static const int kSignificandSize = 52
 
static const int kExponentBias = 0x3FF
 
static const int kDenormalExponent = 1 - kExponentBias
 
static const uint64_t kSignMask = RAPIDJSON_UINT64_C2(0x80000000, 0x00000000)
 
static const uint64_t kExponentMask = RAPIDJSON_UINT64_C2(0x7FF00000, 0x00000000)
 
static const uint64_t kSignificandMask = RAPIDJSON_UINT64_C2(0x000FFFFF, 0xFFFFFFFF)
 
static const uint64_t kHiddenBit = RAPIDJSON_UINT64_C2(0x00100000, 0x00000000)
 

Constructor & Destructor Documentation

◆ Double() [1/3]

internal::Double::Double ( )
inline
Here is the caller graph for this function:

◆ Double() [2/3]

internal::Double::Double ( double  d)
inline

◆ Double() [3/3]

internal::Double::Double ( uint64_t  u)
inline

Member Function Documentation

◆ EffectiveSignificandSize()

static unsigned internal::Double::EffectiveSignificandSize ( int  order)
inlinestatic
Here is the caller graph for this function:

◆ Exponent()

int internal::Double::Exponent ( ) const
inline
Here is the caller graph for this function:

◆ IntegerExponent()

int internal::Double::IntegerExponent ( ) const
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ IntegerSignificand()

uint64_t internal::Double::IntegerSignificand ( ) const
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsInf()

bool internal::Double::IsInf ( ) const
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsNan()

bool internal::Double::IsNan ( ) const
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsNanOrInf()

bool internal::Double::IsNanOrInf ( ) const
inline

◆ IsNormal()

bool internal::Double::IsNormal ( ) const
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ IsZero()

bool internal::Double::IsZero ( ) const
inline
Here is the caller graph for this function:

◆ NextPositiveDouble()

double internal::Double::NextPositiveDouble ( ) const
inline
Here is the call graph for this function:

◆ Sign()

bool internal::Double::Sign ( ) const
inline
Here is the caller graph for this function:

◆ Significand()

uint64_t internal::Double::Significand ( ) const
inline
Here is the caller graph for this function:

◆ ToBias()

uint64_t internal::Double::ToBias ( ) const
inline
Here is the caller graph for this function:

◆ Uint64Value()

uint64_t internal::Double::Uint64Value ( ) const
inline
Here is the caller graph for this function:

◆ Value()

double internal::Double::Value ( ) const
inline
Here is the caller graph for this function:

Member Data Documentation

◆ @48

union { ... }

◆ d_

double internal::Double::d_

◆ kDenormalExponent

const int internal::Double::kDenormalExponent = 1 - kExponentBias
staticprivate

◆ kExponentBias

const int internal::Double::kExponentBias = 0x3FF
staticprivate

◆ kExponentMask

const uint64_t internal::Double::kExponentMask = RAPIDJSON_UINT64_C2(0x7FF00000, 0x00000000)
staticprivate

◆ kHiddenBit

const uint64_t internal::Double::kHiddenBit = RAPIDJSON_UINT64_C2(0x00100000, 0x00000000)
staticprivate

◆ kSignificandMask

const uint64_t internal::Double::kSignificandMask = RAPIDJSON_UINT64_C2(0x000FFFFF, 0xFFFFFFFF)
staticprivate

◆ kSignificandSize

const int internal::Double::kSignificandSize = 52
staticprivate

◆ kSignMask

const uint64_t internal::Double::kSignMask = RAPIDJSON_UINT64_C2(0x80000000, 0x00000000)
staticprivate

◆ u_

uint64_t internal::Double::u_

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