diff options
author | Martin Braun <martin.braun@ettus.com> | 2016-04-22 09:44:20 -0700 |
---|---|---|
committer | Martin Braun <martin.braun@ettus.com> | 2016-04-22 11:14:37 -0700 |
commit | aae93861a042e18b34871e36e8e66004f777396a (patch) | |
tree | b45fd38668dcf11d7349fc98b658d209605c6241 /host | |
parent | 31d5c223ed6e0ca5569042fa1dfbcd0f18194d86 (diff) | |
download | uhd-aae93861a042e18b34871e36e8e66004f777396a.tar.gz uhd-aae93861a042e18b34871e36e8e66004f777396a.tar.bz2 uhd-aae93861a042e18b34871e36e8e66004f777396a.zip |
math: Fixed floating point comparison for custom delta
Reviewed-By: Derek Kozel <derek.kozel@ettus.com>
Diffstat (limited to 'host')
-rw-r--r-- | host/include/uhd/utils/fp_compare_delta.ipp | 2 | ||||
-rw-r--r-- | host/tests/fp_compare_delta_test.cpp | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/host/include/uhd/utils/fp_compare_delta.ipp b/host/include/uhd/utils/fp_compare_delta.ipp index 49cbc281b..292ef4bf6 100644 --- a/host/include/uhd/utils/fp_compare_delta.ipp +++ b/host/include/uhd/utils/fp_compare_delta.ipp @@ -27,7 +27,7 @@ namespace uhd { namespace math { namespace fp_compare { template<typename float_t> UHD_INLINE float_t fp_compare_select_delta(float_t lhs_delta, float_t rhs_delta) { - return ((lhs_delta < rhs_delta) ? lhs_delta : rhs_delta); + return ((lhs_delta > rhs_delta) ? lhs_delta : rhs_delta); } template<> UHD_INLINE diff --git a/host/tests/fp_compare_delta_test.cpp b/host/tests/fp_compare_delta_test.cpp index 36ff14756..d6d8a5209 100644 --- a/host/tests/fp_compare_delta_test.cpp +++ b/host/tests/fp_compare_delta_test.cpp @@ -237,6 +237,14 @@ BOOST_AUTO_TEST_CASE(double_greaterthanequals_operators) { BOOST_CHECK(double(alpha._value + 3.0008) >= alpha); } +BOOST_AUTO_TEST_CASE(fp_compare_large_delta) { + BOOST_CHECK(fp_compare_delta<double>(61440000.047870710492, 0.1) == 61440000.000000000000); + BOOST_CHECK(fp_compare_delta<double>(61440000.047870710492, 0.1) <= 61440000.000000000000); + BOOST_CHECK(fp_compare_delta<double>(61440000.047870710492, 0.1) >= 61440000.000000000000); + + BOOST_CHECK(fp_compare_delta<double>(1.0, 10.0) == 2.0); +} + BOOST_AUTO_TEST_CASE(frequency_compare_function) { BOOST_CHECK(uhd::math::frequencies_are_equal(6817333232.0, 6817333232.0)); |