#ifndef FFTWServer_H_SEEN #define FFTWServer_H_SEEN #include "machdefs.h" #include "fftservintf.h" // Classe implementant l'interface FFTServerInterface en // utilisant FFTW namespace SOPHYA { class FFTWServerPlan; class FFTWServer : public FFTServerInterface { public: FFTWServer(); virtual ~FFTWServer(); virtual FFTServerInterface * Clone(); // Transforme unidimensionnelle , N-dimensionnel virtual void FFTForward(TArray< complex > const & in, TArray< complex > & out); virtual void FFTBackward(TArray< complex > const & in, TArray< complex > & out); virtual void FFTForward(TArray< r_8 > const & in, TArray< complex > & out); virtual void FFTBackward(TArray< complex > const & in, TArray< r_8 > & out, bool usoutsz=false); // Methodes statiques pour reordonner les donnees en 1-D static void ReShapetoReal(TArray< complex > const & in, TArray< r_8 > & out); static void ReShapetoCompl(TArray< r_8 > const & in, TArray< complex > & out); protected: FFTWServerPlan * _p1df; FFTWServerPlan * _p1db; FFTWServerPlan * _pndf; FFTWServerPlan * _pndb; FFTWServerPlan * _p1drf; FFTWServerPlan * _p1drb; FFTWServerPlan * _pndrf; FFTWServerPlan * _pndrb; FFTArrayChecker ckR8; }; } // Fin du namespace #endif