line |
true |
false |
branch |
111
|
0 |
0 |
if (j < 128 || j > 180) { |
|
0 |
0 |
if (j < 128 || j > 180) { |
115
|
0 |
0 |
assert(j >= 128); |
116
|
0 |
0 |
assert(j <= 180); |
209
|
0 |
0 |
while (digits >= 10000) { |
222
|
0 |
0 |
if (digits >= 100) { |
228
|
0 |
0 |
if (digits >= 10) { |
246
|
0 |
0 |
while (digits >= 10000) { |
259
|
0 |
0 |
if (digits >= 100) { |
265
|
0 |
0 |
if (digits >= 10) { |
284
|
0 |
0 |
for (; i < count - 1; i += 2) { |
290
|
0 |
0 |
if (i < count) { |
303
|
0 |
0 |
if (digits == 0) { |
308
|
0 |
0 |
for (i = 0; i < 5; i += 4) { |
351
|
0 |
0 |
if (mantissa) { |
355
|
0 |
0 |
if (sign) { |
368
|
0 |
0 |
for (bit = 63; bit >= 0; --bit) { |
380
|
0 |
0 |
if (ieeeExponent == ((1u << DOUBLE_EXPONENT_BITS) - 1u)) { |
383
|
0 |
0 |
if (ieeeExponent == 0 && ieeeMantissa == 0) { |
|
0 |
0 |
if (ieeeExponent == 0 && ieeeMantissa == 0) { |
385
|
0 |
0 |
if (ieeeSign) { |
389
|
0 |
0 |
if (precision > 0) { |
400
|
0 |
0 |
if (ieeeExponent == 0) { |
414
|
0 |
0 |
if (ieeeSign) { |
417
|
0 |
0 |
if (e2 >= -52) { |
418
|
0 |
0 |
const uint32_t idx = e2 < 0 ? 0 : indexForExponent((uint32_t) e2); |
425
|
0 |
0 |
for (i = len - 1; i >= 0; --i) { |
430
|
0 |
0 |
if (nonzero) { |
433
|
0 |
0 |
} else if (digits != 0) { |
441
|
0 |
0 |
if (!nonzero) { |
444
|
0 |
0 |
if (precision > 0) { |
450
|
0 |
0 |
if (e2 < 0) { |
459
|
0 |
0 |
if (blocks <= MIN_BLOCK_2[idx]) { |
463
|
0 |
0 |
} else if (i < MIN_BLOCK_2[idx]) { |
468
|
0 |
0 |
for (; i < blocks; ++i) { |
471
|
0 |
0 |
if (p >= POW10_OFFSET_2[idx + 1]) { |
486
|
0 |
0 |
if (i < blocks - 1) { |
492
|
0 |
0 |
for (k = 0; k < 9 - maximum; ++k) { |
499
|
0 |
0 |
if (lastDigit != 5) { |
505
|
0 |
0 |
|| (requiredTwos < 60 && multipleOfPowerOf2(m2, (uint32_t) requiredTwos)); |
|
0 |
0 |
|| (requiredTwos < 60 && multipleOfPowerOf2(m2, (uint32_t) requiredTwos)); |
|
0 |
0 |
|| (requiredTwos < 60 && multipleOfPowerOf2(m2, (uint32_t) requiredTwos)); |
506
|
0 |
0 |
roundUp = trailingZeros ? 2 : 1; |
509
|
0 |
0 |
printf("trailingZeros=%s\n", trailingZeros ? "true" : "false"); |
512
|
0 |
0 |
if (maximum > 0) { |
522
|
0 |
0 |
if (roundUp != 0) { |
528
|
0 |
0 |
if (roundIndex == -1 || (c = result[roundIndex], c == '-')) { |
|
0 |
0 |
if (roundIndex == -1 || (c = result[roundIndex], c == '-')) { |
530
|
0 |
0 |
if (dotIndex > 0) { |
537
|
0 |
0 |
if (c == '.') { |
540
|
0 |
0 |
} else if (c == '9') { |
545
|
0 |
0 |
if (roundUp == 2 && c % 2 == 0) { |
|
0 |
0 |
if (roundUp == 2 && c % 2 == 0) { |
579
|
0 |
0 |
for (bit = 63; bit >= 0; --bit) { |
591
|
0 |
0 |
if (ieeeExponent == ((1u << DOUBLE_EXPONENT_BITS) - 1u)) { |
594
|
0 |
0 |
if (ieeeExponent == 0 && ieeeMantissa == 0) { |
|
0 |
0 |
if (ieeeExponent == 0 && ieeeMantissa == 0) { |
596
|
0 |
0 |
if (ieeeSign) { |
600
|
0 |
0 |
if (precision > 0) { |
612
|
0 |
0 |
if (ieeeExponent == 0) { |
627
|
0 |
0 |
if (ieeeSign) { |
635
|
0 |
0 |
if (e2 >= -52) { |
636
|
0 |
0 |
const uint32_t idx = e2 < 0 ? 0 : indexForExponent((uint32_t) e2); |
643
|
0 |
0 |
for (i = len - 1; i >= 0; --i) { |
648
|
0 |
0 |
if (printedDigits != 0) { |
649
|
0 |
0 |
if (printedDigits + 9 > precision) { |
656
|
0 |
0 |
} else if (digits != 0) { |
659
|
0 |
0 |
if (availableDigits > precision) { |
662
|
0 |
0 |
if (printDecimalPoint) { |
674
|
0 |
0 |
if (e2 < 0 && availableDigits == 0) { |
|
0 |
0 |
if (e2 < 0 && availableDigits == 0) { |
680
|
0 |
0 |
for (i = MIN_BLOCK_2[idx]; i < 200; ++i) { |
685
|
0 |
0 |
digits = (p >= POW10_OFFSET_2[idx + 1]) ? 0 : mulShift_mod1e9(m2 << 8, POW10_SPLIT_2[p], j + 8); |
690
|
0 |
0 |
if (printedDigits != 0) { |
691
|
0 |
0 |
if (printedDigits + 9 > precision) { |
698
|
0 |
0 |
} else if (digits != 0) { |
701
|
0 |
0 |
if (availableDigits > precision) { |
704
|
0 |
0 |
if (printDecimalPoint) { |
722
|
0 |
0 |
if (availableDigits == 0) { |
727
|
0 |
0 |
if (availableDigits > maximum) { |
728
|
0 |
0 |
for (k = 0; k < availableDigits - maximum; ++k) { |
738
|
0 |
0 |
if (lastDigit != 5) { |
746
|
0 |
0 |
|| (requiredTwos < 60 && multipleOfPowerOf2(m2, (uint32_t) requiredTwos)); |
|
0 |
0 |
|| (requiredTwos < 60 && multipleOfPowerOf2(m2, (uint32_t) requiredTwos)); |
|
0 |
0 |
|| (requiredTwos < 60 && multipleOfPowerOf2(m2, (uint32_t) requiredTwos)); |
747
|
0 |
0 |
if (rexp < 0) { |
749
|
0 |
0 |
trailingZeros = trailingZeros && multipleOfPowerOf5(m2, (uint32_t) requiredFives); |
|
0 |
0 |
trailingZeros = trailingZeros && multipleOfPowerOf5(m2, (uint32_t) requiredFives); |
751
|
0 |
0 |
roundUp = trailingZeros ? 2 : 1; |
754
|
0 |
0 |
printf("trailingZeros=%s\n", trailingZeros ? "true" : "false"); |
757
|
0 |
0 |
if (printedDigits != 0) { |
758
|
0 |
0 |
if (digits == 0) { |
765
|
0 |
0 |
if (printDecimalPoint) { |
775
|
0 |
0 |
if (roundUp != 0) { |
780
|
0 |
0 |
if (roundIndex == -1 || (c = result[roundIndex], c == '-')) { |
|
0 |
0 |
if (roundIndex == -1 || (c = result[roundIndex], c == '-')) { |
785
|
0 |
0 |
if (c == '.') { |
787
|
0 |
0 |
} else if (c == '9') { |
792
|
0 |
0 |
if (roundUp == 2 && c % 2 == 0) { |
|
0 |
0 |
if (roundUp == 2 && c % 2 == 0) { |
801
|
0 |
0 |
if (exp < 0) { |
808
|
0 |
0 |
if (exp >= 100) { |