MCPcopy Create free account
hub / github.com/Open-GD/OpenGD / find_largest_pow10

Function find_largest_pow10

Source/external/json.hpp:17275–17327  ·  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

17273For n == 0, returns 1 and sets pow10 := 1.
17274*/
17275inline int find_largest_pow10(const std::uint32_t n, std::uint32_t& pow10)
17276{
17277 // LCOV_EXCL_START
17278 if (n >= 1000000000)
17279 {
17280 pow10 = 1000000000;
17281 return 10;
17282 }
17283 // LCOV_EXCL_STOP
17284 if (n >= 100000000)
17285 {
17286 pow10 = 100000000;
17287 return 9;
17288 }
17289 if (n >= 10000000)
17290 {
17291 pow10 = 10000000;
17292 return 8;
17293 }
17294 if (n >= 1000000)
17295 {
17296 pow10 = 1000000;
17297 return 7;
17298 }
17299 if (n >= 100000)
17300 {
17301 pow10 = 100000;
17302 return 6;
17303 }
17304 if (n >= 10000)
17305 {
17306 pow10 = 10000;
17307 return 5;
17308 }
17309 if (n >= 1000)
17310 {
17311 pow10 = 1000;
17312 return 4;
17313 }
17314 if (n >= 100)
17315 {
17316 pow10 = 100;
17317 return 3;
17318 }
17319 if (n >= 10)
17320 {
17321 pow10 = 10;
17322 return 2;
17323 }
17324
17325 pow10 = 1;
17326 return 1;
17327}
17328
17329inline void grisu2_round(char* buf, int len, std::uint64_t dist, std::uint64_t delta,
17330 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