aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/rfnoc
diff options
context:
space:
mode:
Diffstat (limited to 'host/lib/rfnoc')
-rw-r--r--host/lib/rfnoc/ddc_block_ctrl_impl.cpp9
-rw-r--r--host/lib/rfnoc/duc_block_ctrl_impl.cpp11
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;
}