WPILibC++ 2025.3.1
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 >
 
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

auto floor_log10_pow2 (int e) noexcept -> int
 
auto floor_log2_pow10 (int e) noexcept -> int
 
auto umul128_upper64 (uint64_t x, uint64_t y) noexcept -> uint64_t
 
auto umul192_upper128 (uint64_t x, uint128_fallback y) noexcept -> uint128_fallback
 
FMT_API auto get_cached_power (int k) noexcept -> uint128_fallback
 
template<typename T >
FMT_API auto to_decimal (T x) noexcept -> decimal_fp< T >
 
auto umul96_upper64 (uint32_t x, uint64_t y) noexcept -> uint64_t
 
auto umul192_lower128 (uint64_t x, uint128_fallback y) noexcept -> uint128_fallback
 
auto umul96_lower64 (uint32_t x, uint64_t y) noexcept -> uint64_t
 
auto floor_log10_pow2_minus_log10_4_over_3 (int e) noexcept -> int
 
template<int N>
auto check_divisibility_and_divide_by_pow10 (uint32_t &n) noexcept -> bool
 
template<int N>
auto small_division_by_pow10 (uint32_t n) noexcept -> uint32_t
 
auto divide_by_10_to_kappa_plus_1 (uint32_t n) noexcept -> uint32_t
 
auto divide_by_10_to_kappa_plus_1 (uint64_t n) noexcept -> uint64_t
 
template<typename T >
auto is_left_endpoint_integer_shorter_interval (int exponent) noexcept -> bool
 
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 >
auto to_decimal (T x) noexcept -> decimal_fp< T >
 

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>
auto detail::dragonbox::check_divisibility_and_divide_by_pow10 ( uint32_t & n) -> bool
noexcept

◆ divide_by_10_to_kappa_plus_1() [1/2]

auto detail::dragonbox::divide_by_10_to_kappa_plus_1 ( uint32_t n) -> uint32_t
inlinenoexcept

◆ divide_by_10_to_kappa_plus_1() [2/2]

auto detail::dragonbox::divide_by_10_to_kappa_plus_1 ( uint64_t n) -> uint64_t
inlinenoexcept

◆ floor_log10_pow2()

auto detail::dragonbox::floor_log10_pow2 ( int e) -> int
inlinenoexcept

◆ floor_log10_pow2_minus_log10_4_over_3()

auto detail::dragonbox::floor_log10_pow2_minus_log10_4_over_3 ( int e) -> int
inlinenoexcept

◆ floor_log2_pow10()

auto detail::dragonbox::floor_log2_pow10 ( int e) -> int
inlinenoexcept

◆ get_cached_power()

FMT_FUNC auto detail::dragonbox::get_cached_power ( int k) -> uint128_fallback
noexcept

◆ is_left_endpoint_integer_shorter_interval()

template<typename T >
auto detail::dragonbox::is_left_endpoint_integer_shorter_interval ( int exponent) -> bool
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>
auto detail::dragonbox::small_division_by_pow10 ( uint32_t n) -> uint32_t
noexcept

◆ to_decimal() [1/2]

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

◆ to_decimal() [2/2]

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

◆ umul128_upper64()

auto detail::dragonbox::umul128_upper64 ( uint64_t x,
uint64_t y ) -> uint64_t
inlinenoexcept

◆ umul192_lower128()

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

◆ umul192_upper128()

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

◆ umul96_lower64()

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

◆ umul96_upper64()

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

Variable Documentation

◆ [struct]

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

◆ divisor

uint32_t detail::dragonbox::divisor

◆ shift_amount

int detail::dragonbox::shift_amount