fix pi in kissfft
diff --git a/unsupported/Eigen/src/FFT/ei_kissfft_impl.h b/unsupported/Eigen/src/FFT/ei_kissfft_impl.h
index 0d2b3cf..c201d80 100644
--- a/unsupported/Eigen/src/FFT/ei_kissfft_impl.h
+++ b/unsupported/Eigen/src/FFT/ei_kissfft_impl.h
@@ -27,12 +27,14 @@
std::vector<Complex> m_scratchBuf;
bool m_inverse;
+ static const Scalar m_pi4; // constant pi / 4
+
inline void make_twiddles(int nfft, bool inverse) {
using numext::cos;
using numext::sin;
m_inverse = inverse;
m_twiddles.resize(nfft);
- double phinc = 0.25 * double(EIGEN_PI) / nfft;
+ Scalar phinc = m_pi4 / nfft;
Scalar flip = inverse ? Scalar(1) : Scalar(-1);
m_twiddles[0] = Complex(Scalar(1), Scalar(0));
if ((nfft & 1) == 0) m_twiddles[nfft / 2] = Complex(Scalar(-1), Scalar(0));
@@ -279,6 +281,10 @@
}
};
+template <typename _Scalar>
+const typename kiss_cpx_fft<_Scalar>::Scalar kiss_cpx_fft<_Scalar>::m_pi4 =
+ numext::atan(kiss_cpx_fft<_Scalar>::Scalar(1));
+
template <typename Scalar_>
struct kissfft_impl {
typedef Scalar_ Scalar;