From 7fab6b807ef5b86c97577170b7b5fdc667e3fa20 Mon Sep 17 00:00:00 2001 From: Martin Braun Date: Tue, 15 Jan 2019 15:04:03 -0800 Subject: math: Replace boost::*::{lcm,gcd}() with portable versions Boost changed the lcm() and gcd() functions in Boost 1.67. This creates portable UHD versions to be used instead. They use various Boost versions under the hood conditionally. --- host/lib/usrp/b100/clock_ctrl.cpp | 8 +++++--- host/lib/usrp/b200/b200_io_impl.cpp | 3 +-- 2 files changed, 6 insertions(+), 5 deletions(-) (limited to 'host/lib/usrp') diff --git a/host/lib/usrp/b100/clock_ctrl.cpp b/host/lib/usrp/b100/clock_ctrl.cpp index e30ca120f..676ebd981 100644 --- a/host/lib/usrp/b100/clock_ctrl.cpp +++ b/host/lib/usrp/b100/clock_ctrl.cpp @@ -11,10 +11,11 @@ #include #include #include +#include #include +#include #include #include -#include //gcd #include #include #include @@ -122,7 +123,8 @@ static clock_settings_type get_clock_settings(double rate) const uint64_t out_rate = uint64_t(rate); const uint64_t ref_rate = uint64_t(cs.get_ref_rate()); - const size_t gcd = size_t(boost::math::gcd(ref_rate, out_rate)); + const size_t gcd = + uhd::narrow_cast((uhd::math::gcd(ref_rate, out_rate))); for (size_t i = 1; i <= 100; i++) { const size_t X = size_t(i * ref_rate / gcd); @@ -312,7 +314,7 @@ public: const double ref_rate = REFERENCE_INPUT_RATE * 2; // bypass prescaler such that N = B - long gcd = boost::math::gcd(long(ref_rate), long(rate)); + long gcd = uhd::math::gcd(long(ref_rate), long(rate)); _ad9522_regs.set_r_counter(int(ref_rate / gcd)); _ad9522_regs.a_counter = 0; _ad9522_regs.set_b_counter(int(rate / gcd)); diff --git a/host/lib/usrp/b200/b200_io_impl.cpp b/host/lib/usrp/b200/b200_io_impl.cpp index 4f4eba052..69797017b 100644 --- a/host/lib/usrp/b200/b200_io_impl.cpp +++ b/host/lib/usrp/b200/b200_io_impl.cpp @@ -14,7 +14,6 @@ #include #include #include -#include #include using namespace uhd; @@ -111,7 +110,7 @@ void b200_impl::set_auto_tick_rate( } // Clean up floating point rounding errors if they crept in this_dsp_rate = std::min(max_tick_rate, this_dsp_rate); - lcm_rate = boost::math::lcm( + lcm_rate = uhd::math::lcm( lcm_rate, static_cast(floor(this_dsp_rate + 0.5))); } } -- cgit v1.2.3