00001
00002
00004 #ifndef __fft__
00005 #define __fft__
00006
00007 #include "CUtils.h"
00008
00009
00010
00011 #ifdef __CINT__
00012 typedef struct {char a[7];} __float128;
00013 #endif
00014 #include "fftw3.h"
00015
00016 using namespace std;
00017
00018
00023 class fft {
00024
00025 public:
00026
00037 fft(const int asize, const string aplan = "FFTW_ESTIMATE");
00038
00042 virtual ~fft(void);
00053 bool Forward(double *aReDataIn=NULL, double *aImDataIn=NULL);
00054
00061 bool Backward(double *aReDataIn=NULL, double *aImDataIn=NULL);
00062
00071 double* GetNorm2(void);
00072
00081 double* GetNorm(void);
00082
00091 double* GetRe(void);
00092
00101 double* GetIm(void);
00102
00103 private:
00104 bool status_OK;
00105 int fSize;
00106 string fPlan;
00107
00108 fftw_complex* FFTin;
00109 fftw_complex* FFTout;
00110 fftw_plan FFT_Forward;
00111 fftw_plan FFT_Backward;
00112
00113 int last_transform;
00114
00115 };
00116
00117 #endif