diff options
author | Martin Braun <martin.braun@ettus.com> | 2019-01-15 14:42:05 -0800 |
---|---|---|
committer | Brent Stapleton <brent.stapleton@ettus.com> | 2019-01-18 09:37:12 -0800 |
commit | 11c7e561fc29b56ade8ae6ec549b21c533540e8a (patch) | |
tree | a346b7bd7e561efbb8d61de59c4ac2dec4c18d0b | |
parent | eb1f8f160b803bae60c2af7be35e42ece3b8a62b (diff) | |
download | uhd-11c7e561fc29b56ade8ae6ec549b21c533540e8a.tar.gz uhd-11c7e561fc29b56ade8ae6ec549b21c533540e8a.tar.bz2 uhd-11c7e561fc29b56ade8ae6ec549b21c533540e8a.zip |
math: Remove uhd::math::log2, replace with std::log2
Now that we're C++11, we can assume the existence of said symbol and
need no more portability hacks.
-rw-r--r-- | host/cmake/Modules/UHDGlobalDefs.cmake | 3 | ||||
-rw-r--r-- | host/include/uhd/utils/math.hpp | 9 | ||||
-rw-r--r-- | host/lib/usrp/common/ad936x_manager.cpp | 3 | ||||
-rw-r--r-- | host/tests/math_test.cpp | 9 |
4 files changed, 5 insertions, 19 deletions
diff --git a/host/cmake/Modules/UHDGlobalDefs.cmake b/host/cmake/Modules/UHDGlobalDefs.cmake index 47bb83511..385679258 100644 --- a/host/cmake/Modules/UHDGlobalDefs.cmake +++ b/host/cmake/Modules/UHDGlobalDefs.cmake @@ -9,9 +9,6 @@ include(CheckCXXSymbolExistsCopy) -## Check for std::log2 -CHECK_CXX_SYMBOL_EXISTS(log2 cmath HAVE_LOG2) - ## Macros for the version number if(UHD_VERSION_DEVEL) math(EXPR UHD_VERSION_ADDED "1000000 * ${UHD_VERSION_MAJOR} + 10000 * ${UHD_VERSION_API} + 100 * ${UHD_VERSION_ABI} + 99") diff --git a/host/include/uhd/utils/math.hpp b/host/include/uhd/utils/math.hpp index e9f8efb57..8606923fa 100644 --- a/host/include/uhd/utils/math.hpp +++ b/host/include/uhd/utils/math.hpp @@ -223,15 +223,6 @@ UHD_INLINE bool frequencies_are_equal(double lhs, double rhs) == fp_compare::fp_compare_delta<double>(rhs, FREQ_COMPARISON_DELTA_HZ)); } -//! Portable log2() -template <typename float_t> UHD_INLINE float_t log2(float_t x) -{ - // C++11 defines std::log2(), when that's universally supported - // we can switch over. - return std::log(x) / std::log(float_t(2)); -} - - } // namespace math } // namespace uhd diff --git a/host/lib/usrp/common/ad936x_manager.cpp b/host/lib/usrp/common/ad936x_manager.cpp index 87521e834..5c4cb51ae 100644 --- a/host/lib/usrp/common/ad936x_manager.cpp +++ b/host/lib/usrp/common/ad936x_manager.cpp @@ -10,6 +10,7 @@ #include <boost/functional/hash.hpp> #include <boost/make_shared.hpp> #include <chrono> +#include <cmath> #include <thread> using namespace uhd; @@ -167,7 +168,7 @@ public: // We use shifts here instead of 2^x because exp2() is not available in all // compilers, also this guarantees no rounding issues. The type cast to int32_t // serves as floor(): - int32_t multiplier = (1 << int32_t(uhd::math::log2(max_tick_rate / lcm_rate))); + int32_t multiplier = (1 << int32_t(std::log2(max_tick_rate / lcm_rate))); if (multiplier == 2 and lcm_rate >= min_tick_rate) { // Don't bother (see above) multiplier = 1; diff --git a/host/tests/math_test.cpp b/host/tests/math_test.cpp index ffdcbb086..575cfe071 100644 --- a/host/tests/math_test.cpp +++ b/host/tests/math_test.cpp @@ -9,11 +9,8 @@ #include <stdint.h> #include <boost/test/unit_test.hpp> -// NOTE: This is not the only math test case, see e.g. special tests -// for fp comparison. - -BOOST_AUTO_TEST_CASE(test_log2) +// We need an empty test +BOOST_AUTO_TEST_CASE(test_) { - double y = uhd::math::log2(16.0); - BOOST_CHECK_EQUAL(y, 4.0); + BOOST_CHECK_EQUAL(true, true); } |