SoPlex Documentation
Loading...
Searching...
No Matches
detail::dragonbox Namespace Reference

Classes

struct  cache_accessor
 
struct  cache_accessor< double >
 
struct  cache_accessor< float >
 
struct  decimal_fp
 
struct  float_info
 
struct  float_info< double >
 
struct  float_info< float >
 

Functions

FMT_SAFEBUFFERS uint128_wrapper umul128 (uint64_t x, uint64_t y) FMT_NOEXCEPT
 
FMT_SAFEBUFFERS uint64_t umul128_upper64 (uint64_t x, uint64_t y) FMT_NOEXCEPT
 
FMT_SAFEBUFFERS uint64_t umul192_upper64 (uint64_t x, uint128_wrapper y) FMT_NOEXCEPT
 
uint32_t umul96_upper32 (uint32_t x, uint64_t y) FMT_NOEXCEPT
 
FMT_SAFEBUFFERS uint64_t umul192_middle64 (uint64_t x, uint128_wrapper y) FMT_NOEXCEPT
 
uint64_t umul96_lower64 (uint32_t x, uint64_t y) FMT_NOEXCEPT
 
int floor_log10_pow2 (int e) FMT_NOEXCEPT
 
int floor_log2_pow10 (int e) FMT_NOEXCEPT
 
int floor_log10_pow2_minus_log10_4_over_3 (int e) FMT_NOEXCEPT
 
bool divisible_by_power_of_2 (uint32_t x, int exp) FMT_NOEXCEPT
 
bool divisible_by_power_of_2 (uint64_t x, int exp) FMT_NOEXCEPT
 
bool divisible_by_power_of_5 (uint32_t x, int exp) FMT_NOEXCEPT
 
bool divisible_by_power_of_5 (uint64_t x, int exp) FMT_NOEXCEPT
 
template<int N>
bool check_divisibility_and_divide_by_pow5 (uint32_t &n) FMT_NOEXCEPT
 
template<int N>
uint32_t small_division_by_pow10 (uint32_t n) FMT_NOEXCEPT
 
uint32_t divide_by_10_to_kappa_plus_1 (uint32_t n) FMT_NOEXCEPT
 
uint64_t divide_by_10_to_kappa_plus_1 (uint64_t n) FMT_NOEXCEPT
 
template<class T >
bool is_left_endpoint_integer_shorter_interval (int exponent) FMT_NOEXCEPT
 
template<class T >
bool is_endpoint_integer (typename float_info< T >::carrier_uint two_f, int exponent, int minus_k) FMT_NOEXCEPT
 
template<class T >
bool is_center_integer (typename float_info< T >::carrier_uint two_f, int exponent, int minus_k) FMT_NOEXCEPT
 
FMT_ALWAYS_INLINE int remove_trailing_zeros (uint32_t &n) FMT_NOEXCEPT
 
FMT_ALWAYS_INLINE int remove_trailing_zeros (uint64_t &n) FMT_NOEXCEPT
 
template<class T >
FMT_ALWAYS_INLINE FMT_SAFEBUFFERS decimal_fp< T > shorter_interval_case (int exponent) FMT_NOEXCEPT
 
template<typename T >
FMT_SAFEBUFFERS decimal_fp< T > to_decimal (T x) FMT_NOEXCEPT
 
template<typename T >
FMT_API decimal_fp< T > to_decimal (T x) FMT_NOEXCEPT
 

Function Documentation

◆ check_divisibility_and_divide_by_pow5()

template<int N>
bool check_divisibility_and_divide_by_pow5 ( uint32_t & n)

Definition at line 1787 of file format-inl.h.

Referenced by to_decimal().

◆ divide_by_10_to_kappa_plus_1() [1/2]

uint32_t divide_by_10_to_kappa_plus_1 ( uint32_t n)

Definition at line 1816 of file format-inl.h.

Referenced by to_decimal().

◆ divide_by_10_to_kappa_plus_1() [2/2]

uint64_t divide_by_10_to_kappa_plus_1 ( uint64_t n)

Definition at line 1820 of file format-inl.h.

References umul128_upper64().

◆ divisible_by_power_of_2() [1/2]

bool divisible_by_power_of_2 ( uint32_t x,
int exp )

Definition at line 1752 of file format-inl.h.

References detail::exp, and FMT_ASSERT.

Referenced by is_center_integer().

◆ divisible_by_power_of_2() [2/2]

bool divisible_by_power_of_2 ( uint64_t x,
int exp )

Definition at line 1761 of file format-inl.h.

References detail::exp, and FMT_ASSERT.

◆ divisible_by_power_of_5() [1/2]

bool divisible_by_power_of_5 ( uint32_t x,
int exp )

◆ divisible_by_power_of_5() [2/2]

bool divisible_by_power_of_5 ( uint64_t x,
int exp )

◆ floor_log10_pow2()

int floor_log10_pow2 ( int e)

Definition at line 1722 of file format-inl.h.

References FMT_ASSERT, and basic_data< T >::log10_2_significand.

Referenced by to_decimal().

◆ floor_log10_pow2_minus_log10_4_over_3()

int floor_log10_pow2_minus_log10_4_over_3 ( int e)

Definition at line 1740 of file format-inl.h.

References FMT_ASSERT, and basic_data< T >::log10_2_significand.

Referenced by shorter_interval_case().

◆ floor_log2_pow10()

int floor_log2_pow10 ( int e)

◆ is_center_integer()

template<class T >
bool is_center_integer ( typename float_info< T >::carrier_uint two_f,
int exponent,
int minus_k )

Definition at line 2000 of file format-inl.h.

References divisible_by_power_of_2(), and divisible_by_power_of_5().

Referenced by to_decimal().

◆ is_endpoint_integer()

template<class T >
bool is_endpoint_integer ( typename float_info< T >::carrier_uint two_f,
int exponent,
int minus_k )

Definition at line 1989 of file format-inl.h.

References divisible_by_power_of_5().

Referenced by to_decimal().

◆ is_left_endpoint_integer_shorter_interval()

template<class T >
bool is_left_endpoint_integer_shorter_interval ( int exponent)

Definition at line 1981 of file format-inl.h.

Referenced by shorter_interval_case().

◆ remove_trailing_zeros() [1/2]

FMT_ALWAYS_INLINE int remove_trailing_zeros ( uint32_t & n)

Definition at line 2013 of file format-inl.h.

Referenced by shorter_interval_case(), and to_decimal().

◆ remove_trailing_zeros() [2/2]

FMT_ALWAYS_INLINE int remove_trailing_zeros ( uint64_t & n)

Definition at line 2041 of file format-inl.h.

◆ shorter_interval_case()

◆ small_division_by_pow10()

template<int N>
uint32_t small_division_by_pow10 ( uint32_t n)

Definition at line 1804 of file format-inl.h.

References FMT_ASSERT.

◆ to_decimal() [1/2]

◆ to_decimal() [2/2]

◆ umul128()

FMT_SAFEBUFFERS uint128_wrapper umul128 ( uint64_t x,
uint64_t y )

◆ umul128_upper64()

FMT_SAFEBUFFERS uint64_t umul128_upper64 ( uint64_t x,
uint64_t y )

◆ umul192_middle64()

FMT_SAFEBUFFERS uint64_t umul192_middle64 ( uint64_t x,
uint128_wrapper y )

Definition at line 1707 of file format-inl.h.

References umul128_upper64().

Referenced by cache_accessor< double >::compute_mul_parity().

◆ umul192_upper64()

FMT_SAFEBUFFERS uint64_t umul192_upper64 ( uint64_t x,
uint128_wrapper y )

◆ umul96_lower64()

uint64_t umul96_lower64 ( uint32_t x,
uint64_t y )

Definition at line 1716 of file format-inl.h.

Referenced by cache_accessor< float >::compute_mul_parity().

◆ umul96_upper32()

uint32_t umul96_upper32 ( uint32_t x,
uint64_t y )

Definition at line 1701 of file format-inl.h.

References umul128_upper64().

Referenced by cache_accessor< float >::compute_mul().