5 #include <CppAddons/CAMath.h>
8 CFFTW3::CFFTW3(bool forward)
19 void CFFTW3::resize(int n)
27 m_in = new fftw_complex[m_size];
28 m_out = new fftw_complex[m_size];
32 // | FFTW_PRESERVE_INPUT
34 m_plan = fftw_plan_dft_1d(m_size, m_in, m_out, FFTW_FORWARD, FFTW_MEASURE);
36 m_plan = fftw_plan_dft_1d(m_size, m_in, m_out, FFTW_BACKWARD, FFTW_MEASURE);
39 void CFFTW3::execute()
44 void CFFTW3::execute(const vector<double>& in, vector<std::complex<double> >& out)
46 assert(int(in.size())>=m_size);
48 for(int i=0; i<m_size; i++)
56 if(int(out.size())<m_size)
59 for(int i=0; i<m_size; i++)
60 out[i] = make_complex(m_out[i]);
65 if(m_plan) fftw_destroy_plan(m_plan);
66 if(m_in) delete[] m_in;
67 if(m_out) delete[] m_out;