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

Last change on this file since 1371 was 1371, checked in by ansari, 25 years ago

MAJ documentation, Makefile, ... - Reza 5/1/2001

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