mirror of
https://github.com/fastfloat/fast_float.git
synced 2026-10-28 18:07:16 +08:00
additional optimization of fraction reading for char. It's slow patch with really big numbers, so allow CPU to process it efficiently!
This commit is contained in:
parent
fa8c3a711a
commit
016e7817be
@ -347,6 +347,15 @@ parse_mantissa(bigint &result, const parsed_number_string_t<UC> &num) noexcept {
|
||||
}
|
||||
// process all digits, in increments of step per loop
|
||||
while (p != pend) {
|
||||
#if defined(FASTFLOAT_64BIT_LIMB) && defined(FASTFLOAT_X86_SIMD) && \
|
||||
FASTFLOAT_X86_SIMD >= 31
|
||||
if FASTFLOAT_CONSTEXPR17 (sizeof(UC) == 1) {
|
||||
if (!is_constant_evaluated() && (std::distance(p, pend) >= 16) &&
|
||||
(step - counter >= 16) && (max_digits - digits >= 16)) {
|
||||
parse_sixteen_digits(p, value, counter, digits);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
while ((std::distance(p, pend) >= 8) && (step - counter >= 8) &&
|
||||
(max_digits - digits >= 8)) {
|
||||
parse_eight_digits(p, value, counter, digits);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user