V8 Project
|
#include <double.h>
Public Member Functions | |
Double () | |
Double (double d) | |
Double (uint64_t d64) | |
Double (DiyFp diy_fp) | |
DiyFp | AsDiyFp () const |
DiyFp | AsNormalizedDiyFp () const |
uint64_t | AsUint64 () const |
double | NextDouble () const |
int | Exponent () const |
uint64_t | Significand () const |
bool | IsDenormal () const |
bool | IsSpecial () const |
bool | IsInfinite () const |
int | Sign () const |
DiyFp | UpperBoundary () const |
void | NormalizedBoundaries (DiyFp *out_m_minus, DiyFp *out_m_plus) const |
double | value () const |
Static Public Member Functions | |
static int | SignificandSizeForOrderOfMagnitude (int order) |
Static Public Attributes | |
static const uint64_t | kSignMask = V8_2PART_UINT64_C(0x80000000, 00000000) |
static const uint64_t | kExponentMask = V8_2PART_UINT64_C(0x7FF00000, 00000000) |
static const uint64_t | kSignificandMask |
static const uint64_t | kHiddenBit = V8_2PART_UINT64_C(0x00100000, 00000000) |
static const int | kPhysicalSignificandSize = 52 |
static const int | kSignificandSize = 53 |
Static Private Member Functions | |
static uint64_t | DiyFpToUint64 (DiyFp diy_fp) |
Private Attributes | |
const uint64_t | d64_ |
Static Private Attributes | |
static const int | kExponentBias = 0x3FF + kPhysicalSignificandSize |
static const int | kDenormalExponent = -kExponentBias + 1 |
static const int | kMaxExponent = 0x7FF - kExponentBias |
static const uint64_t | kInfinity = V8_2PART_UINT64_C(0x7FF00000, 00000000) |
|
inline |
Definition at line 28 of file double.h.
Referenced by NextDouble().
|
inlineexplicit |
|
inlineexplicit |
Definition at line 31 of file double.h.
|
inline |
Definition at line 36 of file double.h.
References DCHECK, Exponent(), IsSpecial(), Sign(), and Significand().
Referenced by NormalizedBoundaries().
|
inline |
Definition at line 43 of file double.h.
References DCHECK, Exponent(), kHiddenBit, v8::internal::DiyFp::kSignificandSize, kSignificandSize, Significand(), and value().
Referenced by v8::internal::Grisu3(), and v8::internal::Grisu3Counted().
|
inline |
Definition at line 60 of file double.h.
References d64_.
Referenced by Exponent(), v8::internal::InitialScaledStartValuesNegativeExponentNegativePower(), v8::internal::InitialScaledStartValuesNegativeExponentPositivePower(), v8::internal::InitialScaledStartValuesPositiveExponent(), IsDenormal(), IsInfinite(), IsSpecial(), Sign(), and Significand().
|
inlinestaticprivate |
Definition at line 179 of file double.h.
References v8::internal::DiyFp::e(), v8::internal::DiyFp::f(), kDenormalExponent, kExponentBias, kHiddenBit, kInfinity, kMaxExponent, kPhysicalSignificandSize, and kSignificandMask.
|
inline |
Definition at line 78 of file double.h.
References AsUint64(), IsDenormal(), kDenormalExponent, kExponentBias, kExponentMask, and kPhysicalSignificandSize.
Referenced by AsDiyFp(), AsNormalizedDiyFp(), v8::internal::BignumDtoa(), v8::internal::DoubleToInt32(), v8::internal::FastFixedDtoa(), v8::internal::InitialScaledStartValuesNegativeExponentNegativePower(), v8::internal::InitialScaledStartValuesNegativeExponentPositivePower(), and UpperBoundary().
|
inline |
Definition at line 98 of file double.h.
References AsUint64(), and kExponentMask.
Referenced by Exponent(), and Significand().
|
inline |
Definition at line 110 of file double.h.
References AsUint64(), kExponentMask, and kSignificandMask.
|
inline |
Definition at line 105 of file double.h.
References AsUint64(), and kExponentMask.
Referenced by AsDiyFp().
|
inline |
Definition at line 65 of file double.h.
References d64_, Double(), kInfinity, Sign(), and Significand().
Referenced by v8::internal::BignumStrtod().
|
inline |
Definition at line 132 of file double.h.
References AsDiyFp(), DCHECK, v8::internal::DiyFp::e(), v8::internal::DiyFp::f(), kDenormalExponent, kHiddenBit, v8::internal::DiyFp::Normalize(), v8::internal::DiyFp::set_e(), v8::internal::DiyFp::set_f(), and value().
Referenced by v8::internal::Grisu3().
|
inline |
Definition at line 116 of file double.h.
References AsUint64(), and kSignMask.
Referenced by AsDiyFp(), v8::internal::DoubleToInt32(), NextDouble(), and UpperBoundary().
|
inline |
Definition at line 87 of file double.h.
References AsUint64(), IsDenormal(), kHiddenBit, and kSignificandMask.
Referenced by AsDiyFp(), AsNormalizedDiyFp(), v8::internal::BignumDtoa(), v8::internal::DoubleToInt32(), v8::internal::FastFixedDtoa(), v8::internal::InitialScaledStartValuesNegativeExponentNegativePower(), v8::internal::InitialScaledStartValuesNegativeExponentPositivePower(), NextDouble(), and UpperBoundary().
Definition at line 163 of file double.h.
References kDenormalExponent, and kSignificandSize.
Referenced by v8::internal::DiyFpStrtod().
|
inline |
Definition at line 123 of file double.h.
References DCHECK, Exponent(), Sign(), and Significand().
Referenced by v8::internal::BignumStrtod().
|
inline |
Definition at line 155 of file double.h.
References d64_, and v8::internal::uint64_to_double().
Referenced by AsNormalizedDiyFp(), v8::internal::DiyFpStrtod(), and NormalizedBoundaries().
|
private |
Definition at line 177 of file double.h.
Referenced by AsUint64(), NextDouble(), and value().
|
staticprivate |
Definition at line 173 of file double.h.
Referenced by DiyFpToUint64(), Exponent(), NormalizedBoundaries(), and SignificandSizeForOrderOfMagnitude().
|
staticprivate |
Definition at line 172 of file double.h.
Referenced by DiyFpToUint64(), and Exponent().
|
static |
Definition at line 21 of file double.h.
Referenced by Exponent(), v8::internal::InitialScaledStartValuesNegativeExponentNegativePower(), IsDenormal(), IsInfinite(), and IsSpecial().
|
static |
Definition at line 24 of file double.h.
Referenced by AsNormalizedDiyFp(), DiyFpToUint64(), NormalizedBoundaries(), v8::internal::NormalizedExponent(), and Significand().
|
staticprivate |
Definition at line 175 of file double.h.
Referenced by DiyFpToUint64(), and NextDouble().
|
staticprivate |
Definition at line 174 of file double.h.
Referenced by DiyFpToUint64().
|
static |
Definition at line 25 of file double.h.
Referenced by DiyFpToUint64(), and Exponent().
|
static |
Definition at line 22 of file double.h.
Referenced by DiyFpToUint64(), v8::internal::InitialScaledStartValuesNegativeExponentNegativePower(), v8::internal::InitialScaledStartValuesNegativeExponentPositivePower(), v8::internal::InitialScaledStartValuesPositiveExponent(), IsInfinite(), and Significand().
|
static |
Definition at line 26 of file double.h.
Referenced by AsNormalizedDiyFp(), v8::internal::DoubleToInt32(), and SignificandSizeForOrderOfMagnitude().
|
static |
Definition at line 20 of file double.h.
Referenced by Sign(), and v8::internal::SignedZero().