[libc-commits] [libc] 72a794c - [libc][Obvious] Re-enable log10 tests.
Tue Ly via libc-commits
libc-commits at lists.llvm.org
Mon Jan 9 12:55:52 PST 2023
Author: Tue Ly
Date: 2023-01-09T15:55:32-05:00
New Revision: 72a794c2200a7a82aa3dcbff816cc8835b2164eb
URL: https://github.com/llvm/llvm-project/commit/72a794c2200a7a82aa3dcbff816cc8835b2164eb
DIFF: https://github.com/llvm/llvm-project/commit/72a794c2200a7a82aa3dcbff816cc8835b2164eb.diff
LOG: [libc][Obvious] Re-enable log10 tests.
Added:
Modified:
libc/test/src/math/log10_test.cpp
Removed:
################################################################################
diff --git a/libc/test/src/math/log10_test.cpp b/libc/test/src/math/log10_test.cpp
index 363678ce8e5c4..c80dab3652d77 100644
--- a/libc/test/src/math/log10_test.cpp
+++ b/libc/test/src/math/log10_test.cpp
@@ -32,94 +32,94 @@ TEST(LlvmLibcLog10Test, SpecialNumbers) {
EXPECT_FP_EQ(zero, __llvm_libc::log10(1.0));
}
-// TEST(LlvmLibcLog10Test, TrickyInputs) {
-// constexpr int N = 27;
-// constexpr uint64_t INPUTS[N] = {
-// 0x3ff0000000000000, // x = 1.0
-// 0x4024000000000000, // x = 10.0
-// 0x4059000000000000, // x = 10^2
-// 0x408f400000000000, // x = 10^3
-// 0x40c3880000000000, // x = 10^4
-// 0x40f86a0000000000, // x = 10^5
-// 0x412e848000000000, // x = 10^6
-// 0x416312d000000000, // x = 10^7
-// 0x4197d78400000000, // x = 10^8
-// 0x41cdcd6500000000, // x = 10^9
-// 0x4202a05f20000000, // x = 10^10
-// 0x42374876e8000000, // x = 10^11
-// 0x426d1a94a2000000, // x = 10^12
-// 0x42a2309ce5400000, // x = 10^13
-// 0x42d6bcc41e900000, // x = 10^14
-// 0x430c6bf526340000, // x = 10^15
-// 0x4341c37937e08000, // x = 10^16
-// 0x4376345785d8a000, // x = 10^17
-// 0x43abc16d674ec800, // x = 10^18
-// 0x43e158e460913d00, // x = 10^19
-// 0x4415af1d78b58c40, // x = 10^20
-// 0x444b1ae4d6e2ef50, // x = 10^21
-// 0x4480f0cf064dd592, // x = 10^22
-// 0x3fefffffffef06ad, 0x3fefde0f22c7d0eb,
-// 0x225e7812faadb32f, 0x3fee1076964c2903,
-// };
-// for (int i = 0; i < N; ++i) {
-// double x = double(FPBits(INPUTS[i]));
-// EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Log10, x,
-// __llvm_libc::log10(x), 0.5);
-// }
-// }
+TEST(LlvmLibcLog10Test, TrickyInputs) {
+ constexpr int N = 27;
+ constexpr uint64_t INPUTS[N] = {
+ 0x3ff0000000000000, // x = 1.0
+ 0x4024000000000000, // x = 10.0
+ 0x4059000000000000, // x = 10^2
+ 0x408f400000000000, // x = 10^3
+ 0x40c3880000000000, // x = 10^4
+ 0x40f86a0000000000, // x = 10^5
+ 0x412e848000000000, // x = 10^6
+ 0x416312d000000000, // x = 10^7
+ 0x4197d78400000000, // x = 10^8
+ 0x41cdcd6500000000, // x = 10^9
+ 0x4202a05f20000000, // x = 10^10
+ 0x42374876e8000000, // x = 10^11
+ 0x426d1a94a2000000, // x = 10^12
+ 0x42a2309ce5400000, // x = 10^13
+ 0x42d6bcc41e900000, // x = 10^14
+ 0x430c6bf526340000, // x = 10^15
+ 0x4341c37937e08000, // x = 10^16
+ 0x4376345785d8a000, // x = 10^17
+ 0x43abc16d674ec800, // x = 10^18
+ 0x43e158e460913d00, // x = 10^19
+ 0x4415af1d78b58c40, // x = 10^20
+ 0x444b1ae4d6e2ef50, // x = 10^21
+ 0x4480f0cf064dd592, // x = 10^22
+ 0x3fefffffffef06ad, 0x3fefde0f22c7d0eb,
+ 0x225e7812faadb32f, 0x3fee1076964c2903,
+ };
+ for (int i = 0; i < N; ++i) {
+ double x = double(FPBits(INPUTS[i]));
+ EXPECT_MPFR_MATCH_ALL_ROUNDING(mpfr::Operation::Log10, x,
+ __llvm_libc::log10(x), 0.5);
+ }
+}
-// TEST(LlvmLibcLog10Test, InDoubleRange) {
-// constexpr uint64_t COUNT = 1234561;
-// constexpr uint64_t STEP = 0x3FF0'0000'0000'0000ULL / COUNT;
+TEST(LlvmLibcLog10Test, InDoubleRange) {
+ constexpr uint64_t COUNT = 1234561;
+ constexpr uint64_t STEP = 0x3FF0'0000'0000'0000ULL / COUNT;
-// auto test = [&](mpfr::RoundingMode rounding_mode) {
-// mpfr::ForceRoundingMode __r(rounding_mode);
-// uint64_t fails = 0;
-// uint64_t count = 0;
-// uint64_t cc = 0;
-// double mx, mr = 0.0;
-// double tol = 0.5;
+ auto test = [&](mpfr::RoundingMode rounding_mode) {
+ mpfr::ForceRoundingMode __r(rounding_mode);
+ uint64_t fails = 0;
+ uint64_t count = 0;
+ uint64_t cc = 0;
+ double mx, mr = 0.0;
+ double tol = 0.5;
-// for (uint64_t i = 0, v = 0; i <= COUNT; ++i, v += STEP) {
-// double x = FPBits(v).get_val();
-// if (isnan(x) || isinf(x) || x < 0.0)
-// continue;
-// errno = 0;
-// double result = __llvm_libc::log10(x);
-// ++cc;
-// if (isnan(result))
-// continue;
+ for (uint64_t i = 0, v = 0; i <= COUNT; ++i, v += STEP) {
+ double x = FPBits(v).get_val();
+ if (isnan(x) || isinf(x) || x < 0.0)
+ continue;
+ errno = 0;
+ double result = __llvm_libc::log10(x);
+ ++cc;
+ if (isnan(result))
+ continue;
-// ++count;
-// // ASSERT_MPFR_MATCH(mpfr::Operation::Log10, x, result, 0.5);
-// if (!EXPECT_MPFR_MATCH_ROUNDING_SILENTLY(mpfr::Operation::Log10, x, result,
-// 0.5, rounding_mode)) {
-// ++fails;
-// while (!EXPECT_MPFR_MATCH_ROUNDING_SILENTLY(mpfr::Operation::Log10, x,
-// result, tol, rounding_mode)) {
-// mx = x;
-// mr = result;
-// tol *= 2.0;
-// }
-// }
-// }
-// outs << " Log10 failed: " << fails << "/" << count << "/" << cc
-// << " tests.\n";
-// outs << " Max ULPs is at most: " << tol << ".\n";
-// if (fails) {
-// EXPECT_MPFR_MATCH(mpfr::Operation::Log10, mx, mr, 0.5, rounding_mode);
-// }
-// };
+ ++count;
+ // ASSERT_MPFR_MATCH(mpfr::Operation::Log10, x, result, 0.5);
+ if (!EXPECT_MPFR_MATCH_ROUNDING_SILENTLY(mpfr::Operation::Log10, x,
+ result, 0.5, rounding_mode)) {
+ ++fails;
+ while (!EXPECT_MPFR_MATCH_ROUNDING_SILENTLY(
+ mpfr::Operation::Log10, x, result, tol, rounding_mode)) {
+ mx = x;
+ mr = result;
+ tol *= 2.0;
+ }
+ }
+ }
+ outs << " Log10 failed: " << fails << "/" << count << "/" << cc
+ << " tests.\n";
+ outs << " Max ULPs is at most: " << tol << ".\n";
+ if (fails) {
+ EXPECT_MPFR_MATCH(mpfr::Operation::Log10, mx, mr, 0.5, rounding_mode);
+ }
+ };
-// outs << " Test Rounding To Nearest...\n";
-// test(mpfr::RoundingMode::Nearest);
+ outs << " Test Rounding To Nearest...\n";
+ test(mpfr::RoundingMode::Nearest);
-// outs << " Test Rounding Downward...\n";
-// test(mpfr::RoundingMode::Downward);
+ outs << " Test Rounding Downward...\n";
+ test(mpfr::RoundingMode::Downward);
-// outs << " Test Rounding Upward...\n";
-// test(mpfr::RoundingMode::Upward);
+ outs << " Test Rounding Upward...\n";
+ test(mpfr::RoundingMode::Upward);
-// outs << " Test Rounding Toward Zero...\n";
-// test(mpfr::RoundingMode::TowardZero);
-// }
+ outs << " Test Rounding Toward Zero...\n";
+ test(mpfr::RoundingMode::TowardZero);
+}
More information about the libc-commits
mailing list