5#ifndef V8_BASE_NUMBERS_DOUBLE_H_
6#define V8_BASE_NUMBERS_DOUBLE_H_
18 return std::bit_cast<uint64_t>(d);
21 return std::bit_cast<double>(d64);
27 static constexpr uint64_t
kSignMask = 0x8000'0000'0000'0000;
30 static constexpr uint64_t
kHiddenBit = 0x0010'0000'0000'0000;
148 m_minus =
DiyFp((v.
f() << 2) - 1, v.
e() - 2);
150 m_minus =
DiyFp((v.
f() << 1) - 1, v.
e() - 1);
152 m_minus.
set_f(m_minus.
f() << (m_minus.
e() - m_plus.
e()));
153 m_minus.
set_e(m_plus.
e());
154 *out_m_plus = m_plus;
155 *out_m_minus = m_minus;
178 static constexpr uint64_t
kInfinity = 0x7FF0'0000'0000'0000;
185 uint64_t significand = diy_fp.
f();
186 int exponent = diy_fp.
e();
201 uint64_t biased_exponent;
205 biased_exponent =
static_cast<uint64_t
>(exponent +
kExponentBias);
static const int kSignificandSize
constexpr uint64_t f() const
constexpr void set_f(uint64_t new_value)
constexpr void set_e(int new_value)
constexpr double NextDouble() const
static constexpr uint64_t kSignMask
constexpr uint64_t AsUint64() const
DiyFp AsNormalizedDiyFp() const
constexpr bool IsSpecial() const
static constexpr int kSignificandSize
constexpr int Sign() const
static constexpr uint64_t kSignificandMask
constexpr bool IsDenormal() const
static constexpr uint64_t kExponentMask
static constexpr uint64_t DiyFpToUint64(DiyFp diy_fp)
static constexpr int kMaxExponent
void NormalizedBoundaries(DiyFp *out_m_minus, DiyFp *out_m_plus) const
static constexpr int kExponentBias
static int SignificandSizeForOrderOfMagnitude(int order)
static constexpr int kDenormalExponent
static constexpr uint64_t kInfinity
static constexpr int kPhysicalSignificandSize
constexpr bool IsInfinite() const
static constexpr uint64_t kHiddenBit
constexpr Double(uint64_t d64)
DiyFp UpperBoundary() const
constexpr int Exponent() const
constexpr uint64_t Significand() const
constexpr double value() const
constexpr Double(double d)
constexpr Double(DiyFp diy_fp)
constexpr uint64_t double_to_uint64(double d)
constexpr double uint64_to_double(uint64_t d64)
#define DCHECK(condition)
#define DCHECK_GT(v1, v2)