WPILibC++ 2024.3.1
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 >
 
struct  float_info< T, enable_if_t< is_double_double< T >::value > >
 
struct  float_info< T, enable_if_t< std::numeric_limits< T >::digits==64||std::numeric_limits< T >::digits==113||is_float128< T >::value > >
 

Functions

int floor_log10_pow2 (int e) noexcept
 
int floor_log2_pow10 (int e) noexcept
 
uint64_t umul128_upper64 (uint64_t x, uint64_t y) noexcept
 
uint128_fallback umul192_upper128 (uint64_t x, uint128_fallback y) noexcept
 
FMT_API uint128_fallback get_cached_power (int k) noexcept
 
template<typename T >
FMT_API auto to_decimal (T x) noexcept -> decimal_fp< T >
 
uint64_t umul96_upper64 (uint32_t x, uint64_t y) noexcept
 
uint128_fallback umul192_lower128 (uint64_t x, uint128_fallback y) noexcept
 
uint64_t umul96_lower64 (uint32_t x, uint64_t y) noexcept
 
int floor_log10_pow2_minus_log10_4_over_3 (int e) noexcept
 
template<int N>
bool check_divisibility_and_divide_by_pow10 (uint32_t &n) noexcept
 
template<int N>
uint32_t small_division_by_pow10 (uint32_t n) noexcept
 
uint32_t divide_by_10_to_kappa_plus_1 (uint32_t n) noexcept
 
uint64_t divide_by_10_to_kappa_plus_1 (uint64_t n) noexcept
 
template<typename T >
bool is_left_endpoint_integer_shorter_interval (int exponent) noexcept
 
FMT_INLINE int remove_trailing_zeros (uint32_t &n, int s=0) noexcept
 
FMT_INLINE int remove_trailing_zeros (uint64_t &n) noexcept
 
template<typename T >
FMT_INLINE decimal_fp< T > shorter_interval_case (int exponent) noexcept
 
template<typename T >
decimal_fp< T > to_decimal (T x) noexcept
 

Variables

struct {
   uint32_t   detail::dragonbox::divisor
 
   int   detail::dragonbox::shift_amount
 
div_small_pow10_infos [] = {{10, 16}, {100, 16}}
 

Function Documentation

◆ check_divisibility_and_divide_by_pow10()

template<int N>
bool detail::dragonbox::check_divisibility_and_divide_by_pow10 ( uint32_t &  n)
noexcept

◆ divide_by_10_to_kappa_plus_1() [1/2]

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

◆ divide_by_10_to_kappa_plus_1() [2/2]

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

◆ floor_log10_pow2()

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

◆ floor_log10_pow2_minus_log10_4_over_3()

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

◆ floor_log2_pow10()

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

◆ get_cached_power()

FMT_FUNC uint128_fallback detail::dragonbox::get_cached_power ( int  k)
noexcept

◆ is_left_endpoint_integer_shorter_interval()

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

◆ remove_trailing_zeros() [1/2]

FMT_INLINE int detail::dragonbox::remove_trailing_zeros ( uint32_t &  n,
int  s = 0 
)
noexcept

◆ remove_trailing_zeros() [2/2]

FMT_INLINE int detail::dragonbox::remove_trailing_zeros ( uint64_t &  n)
noexcept

◆ shorter_interval_case()

template<typename T >
FMT_INLINE decimal_fp< T > detail::dragonbox::shorter_interval_case ( int  exponent)
noexcept

◆ small_division_by_pow10()

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

◆ to_decimal() [1/2]

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

◆ to_decimal() [2/2]

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

◆ umul128_upper64()

uint64_t detail::dragonbox::umul128_upper64 ( uint64_t  x,
uint64_t  y 
)
inlinenoexcept

◆ umul192_lower128()

uint128_fallback detail::dragonbox::umul192_lower128 ( uint64_t  x,
uint128_fallback  y 
)
inlinenoexcept

◆ umul192_upper128()

uint128_fallback detail::dragonbox::umul192_upper128 ( uint64_t  x,
uint128_fallback  y 
)
inlinenoexcept

◆ umul96_lower64()

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

◆ umul96_upper64()

uint64_t detail::dragonbox::umul96_upper64 ( uint32_t  x,
uint64_t  y 
)
inlinenoexcept

Variable Documentation

◆ 

FMT_INLINE_VARIABLE constexpr struct { ... } detail::dragonbox::div_small_pow10_infos[]

◆ divisor

uint32_t detail::dragonbox::divisor

◆ shift_amount

int detail::dragonbox::shift_amount