source: Sophya/trunk/SophyaExt/IFFTW/fftwserver.h@ 3000

Last change on this file since 3000 was 3000, checked in by ansari, 19 years ago

Passage a FFTW3 + suppression const des arguments FFTForward/Backward cmv+Reza 03/07/2006

File size: 1.4 KB
Line 
1#ifndef FFTWServer_H_SEEN
2#define FFTWServer_H_SEEN
3
4#include "machdefs.h"
5#include "sspvflags.h"
6#include "fftservintf.h"
7
8
9// Classe implementant l'interface FFTServerInterface en
10// utilisant FFTW
11
12namespace SOPHYA {
13
14#ifdef FFTW_V2_EXTSOP
15class FFTWServerPlan;
16#endif
17
18class FFTWServer : public FFTServerInterface {
19 public:
20 FFTWServer(bool preserve_input=true);
21 virtual ~FFTWServer();
22
23
24 virtual FFTServerInterface * Clone();
25
26 // Transforme unidimensionnelle , N-dimensionnel
27 virtual void FFTForward(TArray< complex<r_8> > & in, TArray< complex<r_8> > & out);
28 virtual void FFTBackward(TArray< complex<r_8> > & in, TArray< complex<r_8> > & out);
29 virtual void FFTForward(TArray< r_8 > & in, TArray< complex<r_8> > & out);
30 virtual void FFTBackward(TArray< complex<r_8> > & in, TArray< r_8 > & out,
31 bool usoutsz=false);
32
33// Methodes statiques pour reordonner les donnees en 1-D
34 static void ReShapetoReal(TArray< complex<r_8> > const & in, TArray< r_8 > & out, bool usz);
35 static void ReShapetoCompl(TArray< r_8 > const & in, TArray< complex<r_8> > & out);
36
37 protected:
38#ifdef FFTW_V2_EXTSOP
39 FFTWServerPlan * _p1df;
40 FFTWServerPlan * _p1db;
41 FFTWServerPlan * _pndf;
42 FFTWServerPlan * _pndb;
43
44 FFTWServerPlan * _p1drf;
45 FFTWServerPlan * _p1drb;
46 FFTWServerPlan * _pndrf;
47 FFTWServerPlan * _pndrb;
48#endif
49 FFTArrayChecker<r_8> ckR8;
50 bool _preserve_input; // if true, input arrays not overwritten
51};
52
53} // Fin du namespace
54
55#endif
Note: See TracBrowser for help on using the repository browser.