MCPcopy Create free account
hub / github.com/OpenFodder/openfodder / find_largest_pow10

Function find_largest_pow10

Source/Utils/json.hpp:14823–14877  ·  view source on GitHub ↗

! For n != 0, returns k, such that pow10 := 10^(k-1) <= n < 10^k. For n == 0, returns 1 and sets pow10 := 1. */

Source from the content-addressed store, hash-verified

14821 For n == 0, returns 1 and sets pow10 := 1.
14822 */
14823 inline int find_largest_pow10(const std::uint32_t n, std::uint32_t& pow10)
14824 {
14825 // LCOV_EXCL_START
14826 if (n >= 1000000000)
14827 {
14828 pow10 = 1000000000;
14829 return 10;
14830 }
14831 // LCOV_EXCL_STOP
14832 else if (n >= 100000000)
14833 {
14834 pow10 = 100000000;
14835 return 9;
14836 }
14837 else if (n >= 10000000)
14838 {
14839 pow10 = 10000000;
14840 return 8;
14841 }
14842 else if (n >= 1000000)
14843 {
14844 pow10 = 1000000;
14845 return 7;
14846 }
14847 else if (n >= 100000)
14848 {
14849 pow10 = 100000;
14850 return 6;
14851 }
14852 else if (n >= 10000)
14853 {
14854 pow10 = 10000;
14855 return 5;
14856 }
14857 else if (n >= 1000)
14858 {
14859 pow10 = 1000;
14860 return 4;
14861 }
14862 else if (n >= 100)
14863 {
14864 pow10 = 100;
14865 return 3;
14866 }
14867 else if (n >= 10)
14868 {
14869 pow10 = 10;
14870 return 2;
14871 }
14872 else
14873 {
14874 pow10 = 1;
14875 return 1;
14876 }
14877 }
14878
14879 inline void grisu2_round(char* buf, int len, std::uint64_t dist, std::uint64_t delta,
14880 std::uint64_t rest, std::uint64_t ten_k)

Callers 1

grisu2_digit_genFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected