Rosetta
Classes | Functions
detail::dragonbox Namespace Reference

Classes

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

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< Tshorter_interval_case (int exponent) FMT_NOEXCEPT
 
template<typename T >
FMT_SAFEBUFFERS decimal_fp< Tto_decimal (T x) FMT_NOEXCEPT
 
template<typename T >
FMT_API decimal_fp< Tto_decimal (T x) FMT_NOEXCEPT
 

Function Documentation

◆ check_divisibility_and_divide_by_pow5()

template<int N>
bool detail::dragonbox::check_divisibility_and_divide_by_pow5 ( uint32_t n)

◆ divide_by_10_to_kappa_plus_1() [1/2]

uint32_t detail::dragonbox::divide_by_10_to_kappa_plus_1 ( uint32_t  n)
inline

◆ divide_by_10_to_kappa_plus_1() [2/2]

uint64_t detail::dragonbox::divide_by_10_to_kappa_plus_1 ( uint64_t  n)
inline

◆ divisible_by_power_of_2() [1/2]

bool detail::dragonbox::divisible_by_power_of_2 ( uint32_t  x,
int  exp 
)
inline

References detail::exp, FMT_ASSERT, and x.

Referenced by is_center_integer().

◆ divisible_by_power_of_2() [2/2]

bool detail::dragonbox::divisible_by_power_of_2 ( uint64_t  x,
int  exp 
)
inline

References detail::exp, FMT_ASSERT, and x.

◆ divisible_by_power_of_5() [1/2]

bool detail::dragonbox::divisible_by_power_of_5 ( uint32_t  x,
int  exp 
)
inline

◆ divisible_by_power_of_5() [2/2]

bool detail::dragonbox::divisible_by_power_of_5 ( uint64_t  x,
int  exp 
)
inline

◆ floor_log10_pow2()

int detail::dragonbox::floor_log10_pow2 ( int  e)
inline

◆ floor_log10_pow2_minus_log10_4_over_3()

int detail::dragonbox::floor_log10_pow2_minus_log10_4_over_3 ( int  e)
inline

◆ floor_log2_pow10()

int detail::dragonbox::floor_log2_pow10 ( int  e)
inline

◆ is_center_integer()

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

◆ is_endpoint_integer()

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

◆ is_left_endpoint_integer_shorter_interval()

template<class T >
bool detail::dragonbox::is_left_endpoint_integer_shorter_interval ( int  exponent)

◆ remove_trailing_zeros() [1/2]

FMT_ALWAYS_INLINE int detail::dragonbox::remove_trailing_zeros ( uint32_t n)

◆ remove_trailing_zeros() [2/2]

FMT_ALWAYS_INLINE int detail::dragonbox::remove_trailing_zeros ( uint64_t n)

◆ shorter_interval_case()

template<class T >
FMT_ALWAYS_INLINE FMT_SAFEBUFFERS decimal_fp<T> detail::dragonbox::shorter_interval_case ( int  exponent)

◆ small_division_by_pow10()

template<int N>
uint32_t detail::dragonbox::small_division_by_pow10 ( uint32_t  n)

◆ to_decimal() [1/2]

template<typename T >
FMT_SAFEBUFFERS decimal_fp<T> detail::dragonbox::to_decimal ( T  x)

◆ to_decimal() [2/2]

template<typename T >
FMT_API decimal_fp<T> detail::dragonbox::to_decimal ( T  x)

◆ umul128()

FMT_SAFEBUFFERS uint128_wrapper detail::dragonbox::umul128 ( uint64_t  x,
uint64_t  y 
)
inline

◆ umul128_upper64()

FMT_SAFEBUFFERS uint64_t detail::dragonbox::umul128_upper64 ( uint64_t  x,
uint64_t  y 
)
inline

◆ umul192_middle64()

FMT_SAFEBUFFERS uint64_t detail::dragonbox::umul192_middle64 ( uint64_t  x,
uint128_wrapper  y 
)
inline

◆ umul192_upper64()

FMT_SAFEBUFFERS uint64_t detail::dragonbox::umul192_upper64 ( uint64_t  x,
uint128_wrapper  y 
)
inline

◆ umul96_lower64()

uint64_t detail::dragonbox::umul96_lower64 ( uint32_t  x,
uint64_t  y 
)
inline

◆ umul96_upper32()

uint32_t detail::dragonbox::umul96_upper32 ( uint32_t  x,
uint64_t  y 
)
inline