21 #ifndef mia_core_fft1d_r2c_hh
22 #define mia_core_fft1d_r2c_hh
44 struct Complex :
public std::complex<float> {
46 Complex(
const std::complex<float>& other):
std::complex<float>(other) {}
47 #if !defined(FFTW_NO_Complex) && defined(_Complex_I) && defined(complex) && defined(I)
49 std::complex<float>(v)
54 std::complex<float>(v[0], v[1])
76 std::vector<Complex>
forward(
const std::vector<Real>& data)
const;
83 std::vector<Real>
backward(
const std::vector<Complex>& data)
const;
93 void forward(std::vector<Real>::const_iterator in_begin,
94 std::vector<Real>::const_iterator in_end,
95 std::vector<Complex>::iterator out_begin)
const;
107 void backward(std::vector<Complex>::const_iterator in_begin,
108 std::vector<Complex>::const_iterator in_end,
109 std::vector<Real>::iterator out_begin)
const;
115 struct CFFT1D_R2CImpl *impl;
a class to real-to-complex 1D FFTs
float Real
A typedef that makes switching between single precicion and double precicion easier.
std::vector< Real > backward(const std::vector< Complex > &data) const
void backward(std::vector< Complex >::const_iterator in_begin, std::vector< Complex >::const_iterator in_end, std::vector< Real >::iterator out_begin) const
void forward(std::vector< Real >::const_iterator in_begin, std::vector< Real >::const_iterator in_end, std::vector< Complex >::iterator out_begin) const
std::vector< Complex > forward(const std::vector< Real > &data) const
#define NS_MIA_BEGIN
conveniance define to start the mia namespace
#define EXPORT_CORE
Macro to manage Visual C++ style dllimport/dllexport.
#define NS_MIA_END
conveniance define to end the mia namespace
Complex(fftwf_complex &v)
Complex(const std::complex< float > &other)