aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Braun <martin.braun@ettus.com>2016-04-22 09:44:20 -0700
committerMartin Braun <martin.braun@ettus.com>2016-04-22 11:14:37 -0700
commitaae93861a042e18b34871e36e8e66004f777396a (patch)
treeb45fd38668dcf11d7349fc98b658d209605c6241
parent31d5c223ed6e0ca5569042fa1dfbcd0f18194d86 (diff)
downloaduhd-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>
-rw-r--r--host/include/uhd/utils/fp_compare_delta.ipp2
-rw-r--r--host/tests/fp_compare_delta_test.cpp8
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));