andrew@0: // andrew@0: // accFFT.h andrew@0: // AccelerateFFTtool andrew@0: // andrew@0: // Created by Adam Stark on 17/07/2012. andrew@0: // Copyright (c) 2012 __MyCompanyName__. All rights reserved. andrew@0: // andrew@0: andrew@0: #ifndef AccelerateFFTtool_accFFT_h andrew@0: #define AccelerateFFTtool_accFFT_h andrew@0: andrew@0: #include andrew@0: andrew@0: typedef double fft_complex[2]; andrew@0: andrew@0: class accFFT { andrew@0: public: andrew@0: accFFT(int fft_size,int type); // constructor andrew@0: ~accFFT(); // destructor andrew@0: void forward_FFT_f(float *buffer,float *real,float *imag); // forward fft (float) andrew@0: void forward_FFT_d(double *buffer,fft_complex *out); // forward fft (double) andrew@0: andrew@0: andrew@0: andrew@0: private: andrew@0: size_t fftSize; andrew@0: size_t fftSizeOver2; andrew@0: size_t log2n; andrew@0: size_t log2nOver2; andrew@0: size_t i; andrew@0: andrew@0: FFTSetup fftSetup; andrew@0: FFTSetupD fftSetupD; andrew@0: COMPLEX_SPLIT split; andrew@0: DOUBLE_COMPLEX_SPLIT d_split; andrew@0: andrew@0: int fft_type; andrew@0: andrew@0: }; andrew@0: andrew@0: #endif