#ifndef FFTPServer_H_SEEN #define FFTPServer_H_SEEN #include "fftservintf.h" // implementation de FFTServerInterface en utilisant FFTPack namespace SOPHYA { class FFTPackServer : public FFTServerInterface { public: FFTPackServer(); virtual ~FFTPackServer(); // Implementation de l'interface FFTServerInterface virtual FFTServerInterface * Clone(); virtual void FFTForward(TVector< complex > const & in, TVector< complex > & out); virtual void FFTBackward(TVector< complex > const & in, TVector< complex > & out); virtual void FFTForward(TVector< r_8 > const & in, TVector< complex > & out); virtual void FFTBackward(TVector< complex > const & in, TVector< r_8 > & out); virtual void FFTForward(TVector< complex > const & in, TVector< complex > & out); virtual void FFTBackward(TVector< complex > const & in, TVector< complex > & out); virtual void FFTForward(TVector< r_4 > const & in, TVector< complex > & out); virtual void FFTBackward(TVector< complex > const & in, TVector< r_4 > & out); // Methodes propres a cette classe virtual void fftf(int l, float* inout); virtual void fftb(int l, float* inout); virtual void fftf(int l, double* inout); virtual void fftb(int l, double* inout); virtual void fftf(int l, complex* inout); virtual void fftb(int l, complex* inout); virtual void fftf(int l, complex* inout); virtual void fftb(int l, complex* inout); protected: virtual void checkint_rfft(int l); virtual void checkint_dfft(int l); virtual void checkint_cfft(int l); virtual void checkint_cdfft(int l); int sz_rfft; float* ws_rfft; int sz_cfft; float* ws_cfft; int sz_dfft; double* ws_dfft; int sz_cdfft; double* ws_cdfft; }; } // Fin du namespace #endif