From 20a73834425b0f62f95b5961a1054b7692769a44 Mon Sep 17 00:00:00 2001 From: Pavel Novikov Date: Fri, 5 Sep 2025 13:27:15 +0300 Subject: [PATCH] renamed the function, cleaned up return type --- include/fast_float/fast_float.h | 10 +++------ include/fast_float/parse_number.h | 34 +++++++++---------------------- tests/basictest.cpp | 4 ++-- 3 files changed, 15 insertions(+), 33 deletions(-) diff --git a/include/fast_float/fast_float.h b/include/fast_float/fast_float.h index 5f7cc09..e316f70 100644 --- a/include/fast_float/fast_float.h +++ b/include/fast_float/fast_float.h @@ -58,16 +58,12 @@ from_chars_advanced(UC const *first, UC const *last, T &value, * The implementation does not throw and does not allocate memory (e.g., with * `new` or `malloc`). */ +FASTFLOAT_CONSTEXPR20 inline double +integer_times_pow10(uint64_t mantissa, int decimal_exponent) noexcept; FASTFLOAT_CONSTEXPR20 inline typename std::enable_if::value, double>::type - multiply_integer_and_power_of_10(uint64_t mantissa, - int decimal_exponent) noexcept; -FASTFLOAT_CONSTEXPR20 inline - typename std::enable_if::value, - double>::type - multiply_integer_and_power_of_10(int64_t mantissa, - int decimal_exponent) noexcept; + integer_times_pow10(int64_t mantissa, int decimal_exponent) noexcept; /** * from_chars for integer types. diff --git a/include/fast_float/parse_number.h b/include/fast_float/parse_number.h index a5a236f..416f5f7 100644 --- a/include/fast_float/parse_number.h +++ b/include/fast_float/parse_number.h @@ -344,11 +344,8 @@ from_chars(UC const *first, UC const *last, T &value, int base) noexcept { return from_chars_advanced(first, last, value, options); } -FASTFLOAT_CONSTEXPR20 inline - typename std::enable_if::value, - double>::type - multiply_integer_and_power_of_10(uint64_t mantissa, - int decimal_exponent) noexcept { +FASTFLOAT_CONSTEXPR20 inline double +integer_times_pow10(uint64_t mantissa, int decimal_exponent) noexcept { double value; if (clinger_fast_path_impl(mantissa, decimal_exponent, false, value)) return value; @@ -359,11 +356,8 @@ FASTFLOAT_CONSTEXPR20 inline return value; } -FASTFLOAT_CONSTEXPR20 inline - typename std::enable_if::value, - double>::type - multiply_integer_and_power_of_10(int64_t mantissa, - int decimal_exponent) noexcept { +FASTFLOAT_CONSTEXPR20 inline double +integer_times_pow10(int64_t mantissa, int decimal_exponent) noexcept { const bool is_negative = mantissa < 0; const uint64_t m = static_cast(is_negative ? -mantissa : mantissa); @@ -379,22 +373,14 @@ FASTFLOAT_CONSTEXPR20 inline // the following overloads are here to avoid surprising ambiguity for int, // unsigned, etc. -FASTFLOAT_CONSTEXPR20 inline - typename std::enable_if::value, - double>::type - multiply_integer_and_power_of_10(unsigned mantissa, - int decimal_exponent) noexcept { - return multiply_integer_and_power_of_10(static_cast(mantissa), - decimal_exponent); +FASTFLOAT_CONSTEXPR20 inline double +integer_times_pow10(unsigned mantissa, int decimal_exponent) noexcept { + return integer_times_pow10(static_cast(mantissa), decimal_exponent); } -FASTFLOAT_CONSTEXPR20 inline - typename std::enable_if::value, - double>::type - multiply_integer_and_power_of_10(int mantissa, - int decimal_exponent) noexcept { - return multiply_integer_and_power_of_10(static_cast(mantissa), - decimal_exponent); +FASTFLOAT_CONSTEXPR20 inline double +integer_times_pow10(int mantissa, int decimal_exponent) noexcept { + return integer_times_pow10(static_cast(mantissa), decimal_exponent); } template diff --git a/tests/basictest.cpp b/tests/basictest.cpp index a8e2121..4899b40 100644 --- a/tests/basictest.cpp +++ b/tests/basictest.cpp @@ -2091,7 +2091,7 @@ void verify_integer_multiplication_by_power_of_10(Int mantissa, int decimal_exponent, double expected) { const double actual = - fast_float::multiply_integer_and_power_of_10(mantissa, decimal_exponent); + fast_float::integer_times_pow10(mantissa, decimal_exponent); INFO("m * 10^e=" << mantissa << " * 10^" << decimal_exponent << "\n" @@ -2120,7 +2120,7 @@ void verify_integer_multiplication_by_power_of_10(Int mantissa, expected_result); } -TEST_CASE("multiply_integer_and_power_of_10") { +TEST_CASE("integer_times_pow10") { // explicitly verifying API with different types of integers verify_integer_multiplication_by_power_of_10(31, -1, 3.1); verify_integer_multiplication_by_power_of_10(-31, -1, -3.1);