11#include <boost/numeric/conversion/bounds.hpp> 
   12#include <boost/version.hpp> 
   14#if BOOST_VERSION >= 106700 
   15#    include <boost/integer/common_factor.hpp> 
   17namespace _bmint = boost::integer;
 
   19#    include <boost/math/common_factor.hpp> 
   20namespace _bmint = boost::math;
 
   32static const double PI = 3.14159265358979323846;
 
   50static const float SINGLE_PRECISION_EPSILON  = 1.19e-7f;
 
   51static const double DOUBLE_PRECISION_EPSILON = 2.22e-16;
 
   61static constexpr double FREQ_COMPARE_EPSILON = 1e-12;
 
   78template <
typename float_t>
 
  107template <
typename float_t>
 
  110template <
typename float_t>
 
  113template <
typename float_t>
 
  116template <
typename float_t>
 
  119template <
typename float_t>
 
  122template <
typename float_t>
 
  128template <
typename float_t>
 
  130template <
typename float_t>
 
  132template <
typename float_t>
 
  134template <
typename float_t>
 
  136template <
typename float_t>
 
  138template <
typename float_t>
 
  141template <
typename float_t>
 
  143template <
typename float_t>
 
  145template <
typename float_t>
 
  147template <
typename float_t>
 
  149template <
typename float_t>
 
  151template <
typename float_t>
 
  179static const float SINGLE_PRECISION_DELTA  = 1e-3f;
 
  180static const double DOUBLE_PRECISION_DELTA = 1e-5;
 
  183static const double FREQ_COMPARISON_DELTA_HZ = 0.1;
 
  186namespace fp_compare {
 
  201template <
typename float_t>
 
  215template <
typename float_t>
 
  217template <
typename float_t>
 
  219template <
typename float_t>
 
  221template <
typename float_t>
 
  223template <
typename float_t>
 
  225template <
typename float_t>
 
  230template <
typename float_t>
 
  232template <
typename float_t>
 
  234template <
typename float_t>
 
  236template <
typename float_t>
 
  238template <
typename float_t>
 
  240template <
typename float_t>
 
  243template <
typename float_t>
 
  245template <
typename float_t>
 
  247template <
typename float_t>
 
  249template <
typename float_t>
 
  251template <
typename float_t>
 
  253template <
typename float_t>
 
  266    return std::pow(10, (dB_val) / 10.0);
 
 
  271    return 10 * std::log10(val);
 
 
  276template <
typename IntegerType>
 
  277inline IntegerType 
lcm(IntegerType x, IntegerType y)
 
  280    return _bmint::lcm<IntegerType>(x, y);
 
 
  284template <
typename IntegerType>
 
  285inline IntegerType 
gcd(IntegerType x, IntegerType y)
 
  288    return _bmint::gcd<IntegerType>(x, y);
 
 
  303    return (T(0) < x) - (x < T(0));
 
 
  318    double freq = std::fmod(requested_freq, rate);
 
  319    if (std::abs(freq) > rate / 2.0)
 
 
UHD_INLINE fp_compare_delta(float_t value)
float_t _delta
Definition math.hpp:212
UHD_INLINE void operator=(const fp_compare_delta ©)
Definition fp_compare_delta.ipp:56
UHD_INLINE ~fp_compare_delta()
Definition fp_compare_delta.ipp:51
float_t _value
Definition math.hpp:211
float_t _epsilon
Definition math.hpp:89
UHD_INLINE ~fp_compare_epsilon()
Definition fp_compare_epsilon.ipp:46
UHD_INLINE void operator=(const fp_compare_epsilon ©)
Definition fp_compare_epsilon.ipp:51
float_t _value
Definition math.hpp:88
UHD_INLINE fp_compare_epsilon(float_t value)
UHD_INLINE fp_compare_epsilon(float value)
Definition fp_compare_epsilon.ipp:19
UHD_INLINE freq_compare_epsilon(const freq_compare_epsilon ©)
Definition math.hpp:163
UHD_INLINE freq_compare_epsilon(double value)
Definition math.hpp:158
#define UHD_INLINE
Definition config.h:65
Definition fp_compare_delta.ipp:15
UHD_INLINE bool operator!=(fp_compare_delta< float_t > lhs, fp_compare_delta< float_t > rhs)
Definition fp_compare_delta.ipp:71
UHD_INLINE bool operator<=(fp_compare_delta< float_t > lhs, fp_compare_delta< float_t > rhs)
Definition fp_compare_delta.ipp:84
UHD_INLINE bool operator==(fp_compare_delta< float_t > lhs, fp_compare_delta< float_t > rhs)
Definition fp_compare_delta.ipp:64
UHD_INLINE bool operator<(fp_compare_delta< float_t > lhs, fp_compare_delta< float_t > rhs)
Definition fp_compare_delta.ipp:77
UHD_INLINE bool operator>(fp_compare_delta< float_t > lhs, fp_compare_delta< float_t > rhs)
Definition fp_compare_delta.ipp:90
UHD_INLINE bool operator>=(fp_compare_delta< float_t > lhs, fp_compare_delta< float_t > rhs)
Definition fp_compare_delta.ipp:97
Definition fp_compare_delta.ipp:15
IntegerType lcm(IntegerType x, IntegerType y)
Portable version of lcm() across Boost versions.
Definition math.hpp:277
UHD_INLINE bool frequencies_are_equal(double lhs, double rhs)
Definition math.hpp:258
double dB_to_lin(const double dB_val)
Definition math.hpp:264
constexpr int sign(T x)
Returns the sign of x.
Definition math.hpp:299
IntegerType gcd(IntegerType x, IntegerType y)
Portable version of gcd() across Boost versions.
Definition math.hpp:285
double lin_to_dB(const double val)
Definition math.hpp:269
double wrap_frequency(const double requested_freq, const double rate)
Return a wrapped frequency that is the equivalent frequency in the first.
Definition math.hpp:316
Definition build_info.hpp:12