source: Sophya/trunk/SophyaLib/NTools/fftservintf.h@ 717

Last change on this file since 717 was 717, checked in by ansari, 26 years ago

Introduction FFTMayer, debug de FFTPack - Reza 5/2/2000

File size: 2.4 KB
Line 
1#ifndef FFTServerIntf_H_SEEN
2#define FFTServerIntf_H_SEEN
3
4#include "machdefs.h"
5#include "pexceptions.h"
6#include <complex>
7#include "tmatrix.h"
8#include "tvector.h"
9
10// Classe definissant l'interface pour les transformees de Fourier
11// L'implementation par defaut est vide et lance une exception
12
13namespace SOPHYA {
14
15class FFTServerInterface {
16 public:
17
18// Methodes de la classe
19 FFTServerInterface(string info);
20 virtual ~FFTServerInterface();
21
22
23 virtual FFTServerInterface * Clone() = 0;
24
25 inline void setNormalize(bool fg=false) { _fgnorm = fg; }
26 inline bool getNormalize() const { return(_fgnorm); }
27 inline string getInfo() const { return _info; }
28
29 // Transforme unidimensionnel sur des doubles
30 virtual void FFTForward(TVector< complex<r_8> > const & in, TVector< complex<r_8> > & out);
31 virtual void FFTBackward(TVector< complex<r_8> > const & in, TVector< complex<r_8> > & out);
32 virtual void FFTForward(TVector< r_8 > const & in, TVector< complex<r_8> > & out);
33 virtual void FFTBackward(TVector< complex<r_8> > const & in, TVector< r_8 > & out);
34
35 // Transforme unidimensionnel sur des float
36 virtual void FFTForward(TVector< complex<r_4> > const & in, TVector< complex<r_4> > & out);
37 virtual void FFTBackward(TVector< complex<r_4> > const & in, TVector< complex<r_4> > & out);
38 virtual void FFTForward(TVector< r_4 > const & in, TVector< complex<r_4> > & out);
39 virtual void FFTBackward(TVector< complex<r_4> > const & in, TVector< r_4 > & out);
40
41
42 //---------------------------------------------------
43 // Transforme 2D sur des doubles
44 virtual void FFTForward(TMatrix< complex<r_8> > const & in, TMatrix< complex<r_8> > & out);
45 virtual void FFTBackward(TMatrix< complex<r_8> > const & in, TMatrix< complex<r_8> > & out);
46 virtual void FFTForward(TMatrix< r_8 > const & in, TMatrix< complex<r_8> > & out);
47 virtual void FFTBackward(TMatrix< complex<r_8> > const & in, TMatrix< r_8 > & out);
48
49 // Transforme 2D sur des float
50 virtual void FFTForward(TMatrix< complex<r_4> > const & in, TMatrix< complex<r_4> > & out);
51 virtual void FFTBackward(TMatrix< complex<r_4> > const & in, TMatrix< complex<r_4> > & out);
52 virtual void FFTForward(TMatrix< r_4 > const & in, TMatrix< complex<r_4> > & out);
53 virtual void FFTBackward(TMatrix< complex<r_4> > const & in, TMatrix< r_4 > & out);
54
55
56
57 protected:
58 bool _fgnorm;
59 string _info;
60};
61
62} // Fin du namespace
63
64#endif
Note: See TracBrowser for help on using the repository browser.