#include <ieee.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 |
double | PreviousDouble () const |
int | Exponent () const |
uint64_t | Significand () const |
bool | IsDenormal () const |
bool | IsSpecial () const |
bool | IsNan () const |
bool | IsInfinite () const |
int | Sign () const |
DiyFp | UpperBoundary () const |
void | NormalizedBoundaries (DiyFp *out_m_minus, DiyFp *out_m_plus) const |
bool | LowerBoundaryIsCloser () const |
double | value () const |
Static Public Member Functions | |
static int | SignificandSizeForOrderOfMagnitude (int order) |
static double | Infinity () |
static double | NaN () |
Static Public Attributes | |
static const uint64_t | kSignMask = UINT64_2PART_C(0x80000000, 00000000) |
static const uint64_t | kExponentMask = UINT64_2PART_C(0x7FF00000, 00000000) |
static const uint64_t | kSignificandMask = UINT64_2PART_C(0x000FFFFF, FFFFFFFF) |
static const uint64_t | kHiddenBit = UINT64_2PART_C(0x00100000, 00000000) |
static const int | kPhysicalSignificandSize = 52 |
static const int | kSignificandSize = 53 |
Definition at line 42 of file ieee.h.
double_conversion::Double::Double | ( | ) | [inline] |
Definition at line 51 of file ieee.h.
Referenced by Infinity(), NaN(), NextDouble(), and PreviousDouble().
double_conversion::Double::Double | ( | double | d | ) | [inline, explicit] |
double_conversion::Double::Double | ( | uint64_t | d64 | ) | [inline, explicit] |
double_conversion::Double::Double | ( | DiyFp | diy_fp | ) | [inline, explicit] |
DiyFp double_conversion::Double::AsDiyFp | ( | ) | const [inline] |
Definition at line 59 of file ieee.h.
References ASSERT, Exponent(), IsSpecial(), Sign(), and Significand().
Referenced by NormalizedBoundaries().
DiyFp double_conversion::Double::AsNormalizedDiyFp | ( | ) | const [inline] |
Definition at line 66 of file ieee.h.
References ASSERT, Exponent(), kHiddenBit, kSignificandSize, double_conversion::DiyFp::kSignificandSize, Significand(), and value().
uint64_t double_conversion::Double::AsUint64 | ( | ) | const [inline] |
Definition at line 83 of file ieee.h.
Referenced by Exponent(), IsDenormal(), IsInfinite(), IsNan(), IsSpecial(), LowerBoundaryIsCloser(), Sign(), and Significand().
int double_conversion::Double::Exponent | ( | ) | const [inline] |
Definition at line 111 of file ieee.h.
References AsUint64(), IsDenormal(), kExponentMask, and kPhysicalSignificandSize.
Referenced by AsDiyFp(), AsNormalizedDiyFp(), LowerBoundaryIsCloser(), and UpperBoundary().
static double double_conversion::Double::Infinity | ( | ) | [inline, static] |
Definition at line 216 of file ieee.h.
References Double().
Referenced by PreviousDouble().
bool double_conversion::Double::IsDenormal | ( | ) | const [inline] |
Definition at line 131 of file ieee.h.
References AsUint64(), and kExponentMask.
Referenced by Exponent(), and Significand().
bool double_conversion::Double::IsInfinite | ( | ) | const [inline] |
Definition at line 149 of file ieee.h.
References AsUint64(), kExponentMask, and kSignificandMask.
bool double_conversion::Double::IsNan | ( | ) | const [inline] |
Definition at line 143 of file ieee.h.
References AsUint64(), kExponentMask, and kSignificandMask.
bool double_conversion::Double::IsSpecial | ( | ) | const [inline] |
Definition at line 138 of file ieee.h.
References AsUint64(), and kExponentMask.
Referenced by AsDiyFp().
bool double_conversion::Double::LowerBoundaryIsCloser | ( | ) | const [inline] |
Definition at line 187 of file ieee.h.
References AsUint64(), Exponent(), and kSignificandMask.
Referenced by NormalizedBoundaries().
static double double_conversion::Double::NaN | ( | ) | [inline, static] |
double double_conversion::Double::NextDouble | ( | ) | const [inline] |
Definition at line 88 of file ieee.h.
References Double(), Sign(), and Significand().
void double_conversion::Double::NormalizedBoundaries | ( | DiyFp * | out_m_minus, | |
DiyFp * | out_m_plus | |||
) | const [inline] |
Definition at line 171 of file ieee.h.
References AsDiyFp(), ASSERT, double_conversion::DiyFp::e(), double_conversion::DiyFp::f(), LowerBoundaryIsCloser(), double_conversion::DiyFp::Normalize(), double_conversion::DiyFp::set_e(), double_conversion::DiyFp::set_f(), and value().
double double_conversion::Double::PreviousDouble | ( | ) | const [inline] |
Definition at line 101 of file ieee.h.
References Double(), Infinity(), kSignMask, Sign(), and Significand().
int double_conversion::Double::Sign | ( | ) | const [inline] |
Definition at line 155 of file ieee.h.
References AsUint64(), and kSignMask.
Referenced by AsDiyFp(), NextDouble(), PreviousDouble(), and UpperBoundary().
uint64_t double_conversion::Double::Significand | ( | ) | const [inline] |
Definition at line 120 of file ieee.h.
References AsUint64(), IsDenormal(), kHiddenBit, and kSignificandMask.
Referenced by AsDiyFp(), AsNormalizedDiyFp(), NextDouble(), PreviousDouble(), and UpperBoundary().
static int double_conversion::Double::SignificandSizeForOrderOfMagnitude | ( | int | order | ) | [inline, static] |
DiyFp double_conversion::Double::UpperBoundary | ( | ) | const [inline] |
Definition at line 162 of file ieee.h.
References ASSERT, Exponent(), Sign(), and Significand().
double double_conversion::Double::value | ( | ) | const [inline] |
Definition at line 200 of file ieee.h.
Referenced by AsNormalizedDiyFp(), and NormalizedBoundaries().
const uint64_t double_conversion::Double::kExponentMask = UINT64_2PART_C(0x7FF00000, 00000000) [static] |
Definition at line 45 of file ieee.h.
Referenced by Exponent(), IsDenormal(), IsInfinite(), IsNan(), and IsSpecial().
const uint64_t double_conversion::Double::kHiddenBit = UINT64_2PART_C(0x00100000, 00000000) [static] |
const int double_conversion::Double::kPhysicalSignificandSize = 52 [static] |
const uint64_t double_conversion::Double::kSignificandMask = UINT64_2PART_C(0x000FFFFF, FFFFFFFF) [static] |
Definition at line 46 of file ieee.h.
Referenced by IsInfinite(), IsNan(), LowerBoundaryIsCloser(), and Significand().
const int double_conversion::Double::kSignificandSize = 53 [static] |
Definition at line 49 of file ieee.h.
Referenced by AsNormalizedDiyFp(), and SignificandSizeForOrderOfMagnitude().
const uint64_t double_conversion::Double::kSignMask = UINT64_2PART_C(0x80000000, 00000000) [static] |