Ditto 4.8.0
Loading...
Searching...
No Matches
detail::dtoa_impl::diyfp Struct Reference

Public Member Functions

constexpr diyfp (std::uint64_t f_, int e_) noexcept
 

Static Public Member Functions

static diyfp sub (const diyfp &x, const diyfp &y) noexcept
 returns x - y
 
static diyfp mul (const diyfp &x, const diyfp &y) noexcept
 returns x * y
 
static diyfp normalize (diyfp x) noexcept
 normalize x such that the significand is >= 2^(q-1)
 
static diyfp normalize_to (const diyfp &x, const int target_exponent) noexcept
 normalize x such that the result has the exponent E
 

Public Attributes

std::uint64_t f = 0
 
int e = 0
 

Static Public Attributes

static constexpr int kPrecision = 64
 

Member Function Documentation

◆ mul()

static diyfp detail::dtoa_impl::diyfp::mul ( const diyfp & x,
const diyfp & y )
inlinestaticnoexcept

returns x * y

Note
The result is rounded. (Only the upper q bits are returned.)

◆ normalize()

static diyfp detail::dtoa_impl::diyfp::normalize ( diyfp x)
inlinestaticnoexcept

normalize x such that the significand is >= 2^(q-1)

Precondition
x.f != 0

◆ normalize_to()

static diyfp detail::dtoa_impl::diyfp::normalize_to ( const diyfp & x,
const int target_exponent )
inlinestaticnoexcept

normalize x such that the result has the exponent E

Precondition
e >= x.e and the upper e - x.e bits of x.f must be zero.

◆ sub()

static diyfp detail::dtoa_impl::diyfp::sub ( const diyfp & x,
const diyfp & y )
inlinestaticnoexcept

returns x - y

Precondition
x.e == y.e and x.f >= y.f