diff options
Diffstat (limited to 'host/lib/rfnoc')
-rw-r--r-- | host/lib/rfnoc/ddc_block_ctrl_impl.cpp | 9 | ||||
-rw-r--r-- | host/lib/rfnoc/duc_block_ctrl_impl.cpp | 11 |
2 files changed, 7 insertions, 13 deletions
diff --git a/host/lib/rfnoc/ddc_block_ctrl_impl.cpp b/host/lib/rfnoc/ddc_block_ctrl_impl.cpp index 9c7764045..8697c84cf 100644 --- a/host/lib/rfnoc/ddc_block_ctrl_impl.cpp +++ b/host/lib/rfnoc/ddc_block_ctrl_impl.cpp @@ -9,6 +9,7 @@ #include <uhd/utils/log.hpp> #include <uhd/convert.hpp> #include <uhd/types/ranges.hpp> +#include <uhdlib/utils/math.hpp> #include <uhdlib/utils/narrow.hpp> #include <uhdlib/utils/compat_check.hpp> #include <boost/math/special_functions/round.hpp> @@ -16,11 +17,6 @@ using namespace uhd::rfnoc; -// TODO move this to a central location -template <class T> T ceil_log2(T num){ - return std::ceil(std::log(num)/std::log(T(2))); -} - class ddc_block_ctrl_impl : public ddc_block_ctrl { public: @@ -301,7 +297,8 @@ private: // cost us small signal performance, thus we do no provide compensation gain for a saturated front end and allow // the signal to clip in the H/W as needed. If we wished to avoid the signal clipping in these circumstances then adjust code to read: // _scaling_adjustment = std::pow(2, ceil_log2(rate_pow))/(CORDIC_GAIN*rate_pow*1.415); - const double scaling_adjustment = std::pow(2, ceil_log2(rate_pow))/(CORDIC_GAIN*rate_pow); + const double scaling_adjustment = + std::pow(2, uhd::math::ceil_log2(rate_pow))/(CORDIC_GAIN*rate_pow); update_scalar(scaling_adjustment, chan); return input_rate/decim_rate; } diff --git a/host/lib/rfnoc/duc_block_ctrl_impl.cpp b/host/lib/rfnoc/duc_block_ctrl_impl.cpp index 0e1521d9f..c8989d65c 100644 --- a/host/lib/rfnoc/duc_block_ctrl_impl.cpp +++ b/host/lib/rfnoc/duc_block_ctrl_impl.cpp @@ -9,18 +9,14 @@ #include <uhd/utils/log.hpp> #include <uhd/convert.hpp> #include <uhd/types/ranges.hpp> -#include <uhdlib/utils/narrow.hpp> #include <uhdlib/utils/compat_check.hpp> +#include <uhdlib/utils/math.hpp> +#include <uhdlib/utils/narrow.hpp> #include <boost/math/special_functions/round.hpp> #include <cmath> using namespace uhd::rfnoc; -// TODO move this to a central location -template <class T> T ceil_log2(T num){ - return std::ceil(std::log(num)/std::log(T(2))); -} - // TODO remove this once we have actual lambdas static double lambda_forward_prop(uhd::property_tree::sptr tree, uhd::fs_path prop, double value) { @@ -250,7 +246,8 @@ private: // This must also encompass the CORDIC gain static const double CONSTANT_GAIN = 1.1644; - const double scaling_adjustment = std::pow(2, ceil_log2(rate_pow))/(CONSTANT_GAIN*rate_pow); + const double scaling_adjustment = + std::pow(2, uhd::math::ceil_log2(rate_pow))/(CONSTANT_GAIN*rate_pow); update_scalar(scaling_adjustment, chan); return output_rate/interp_rate; } |