diff options
author | Chris Robinson <[email protected]> | 2020-04-01 22:22:50 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2020-04-01 22:22:50 -0700 |
commit | 6fb59f1182965a0e1e45d60e81e3ff02db45944c (patch) | |
tree | 43f192cb9288e375dc633083a84692ca0b52dca3 | |
parent | bf48dcd37535ccf3146082cee421f418bb0cb66b (diff) |
Avoid using M_PI
-rw-r--r-- | common/math_defs.h | 16 | ||||
-rw-r--r-- | common/polyphase_resampler.cpp | 9 |
2 files changed, 9 insertions, 16 deletions
diff --git a/common/math_defs.h b/common/math_defs.h index 0362a956..d90eaae5 100644 --- a/common/math_defs.h +++ b/common/math_defs.h @@ -3,12 +3,8 @@ #include <math.h> -#ifndef M_PI -#define M_PI 3.14159265358979323846 -#endif - -constexpr inline float Deg2Rad(float x) noexcept { return x * static_cast<float>(M_PI/180.0); } -constexpr inline float Rad2Deg(float x) noexcept { return x * static_cast<float>(180.0/M_PI); } +constexpr inline float Deg2Rad(float x) noexcept { return x * 1.74532925199432955e-02f/*pi/180*/; } +constexpr inline float Rad2Deg(float x) noexcept { return x * 5.72957795130823229e+01f/*180/pi*/; } namespace al { @@ -17,14 +13,14 @@ struct MathDefs { }; template<> struct MathDefs<float> { - static constexpr inline float Pi() noexcept { return static_cast<float>(M_PI); } - static constexpr inline float Tau() noexcept { return static_cast<float>(M_PI * 2.0); } + static constexpr inline float Pi() noexcept { return 3.14159265358979323846e+00f; } + static constexpr inline float Tau() noexcept { return 6.28318530717958647692e+00f; } }; template<> struct MathDefs<double> { - static constexpr inline double Pi() noexcept { return M_PI; } - static constexpr inline double Tau() noexcept { return M_PI * 2.0; } + static constexpr inline double Pi() noexcept { return 3.14159265358979323846e+00; } + static constexpr inline double Tau() noexcept { return 6.28318530717958647692e+00; } }; } // namespace al diff --git a/common/polyphase_resampler.cpp b/common/polyphase_resampler.cpp index b205fe83..d572ddcc 100644 --- a/common/polyphase_resampler.cpp +++ b/common/polyphase_resampler.cpp @@ -4,15 +4,12 @@ #include <algorithm> #include <cmath> +#include "math_defs.h" #include "opthelpers.h" namespace { -#ifndef M_PI -#define M_PI 3.14159265358979323846 -#endif - #define EPSILON 1e-9 using uint = unsigned int; @@ -26,7 +23,7 @@ double Sinc(const double x) { if UNLIKELY(std::abs(x) < EPSILON) return 1.0; - return std::sin(M_PI * x) / (M_PI * x); + return std::sin(al::MathDefs<double>::Pi()*x) / (al::MathDefs<double>::Pi()*x); } /* The zero-order modified Bessel function of the first kind, used for the @@ -100,7 +97,7 @@ uint Gcd(uint x, uint y) */ uint CalcKaiserOrder(const double rejection, const double transition) { - double w_t = 2.0 * M_PI * transition; + double w_t = 2.0 * al::MathDefs<double>::Pi() * transition; if LIKELY(rejection > 21.0) return static_cast<uint>(std::ceil((rejection - 7.95) / (2.285 * w_t))); return static_cast<uint>(std::ceil(5.79 / w_t)); |