VR-Vantage 2.8 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Public Member Functions | Static Public Member Functions | Private Attributes | Static Private Attributes
internal::Double Class Reference

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

internal::Double::Double ( )
inline

Referenced by NextPositiveDouble().

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

Member Function Documentation

double internal::Double::Value ( ) const
inline

References d_.

Referenced by internal::StrtodBigInteger().

uint64_t internal::Double::Uint64Value ( ) const
inline

References u_.

double internal::Double::NextPositiveDouble ( ) const
inline

References Double(), RAPIDJSON_ASSERT, Sign(), and u_.

Referenced by internal::StrtodBigInteger().

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

References kSignMask, and u_.

Referenced by internal::dtoa(), and NextPositiveDouble().

uint64_t internal::Double::Significand ( ) const
inline
int internal::Double::Exponent ( ) const
inline
bool internal::Double::IsNan ( ) const
inline

References kExponentMask, Significand(), and u_.

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

References kExponentMask, Significand(), and u_.

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

References kExponentMask, and u_.

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

References kExponentMask, Significand(), and u_.

Referenced by IntegerExponent(), and IntegerSignificand().

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

References kExponentMask, kSignificandMask, and u_.

Referenced by internal::dtoa().

uint64_t internal::Double::IntegerSignificand ( ) const
inline
int internal::Double::IntegerExponent ( ) const
inline
uint64_t internal::Double::ToBias ( ) const
inline

References kSignMask, and u_.

static unsigned internal::Double::EffectiveSignificandSize ( int  order)
inlinestatic

Referenced by internal::StrtodDiyFp().

Member Data Documentation

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

Referenced by Exponent(), and IntegerExponent().

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

Referenced by Exponent().

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

Referenced by IntegerExponent().

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

Referenced by Sign(), and ToBias().

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

Referenced by IsZero(), and Significand().

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

Referenced by IntegerSignificand().

double internal::Double::d_

Referenced by Value().

uint64_t internal::Double::u_
union { ... }

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


Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)