00001 // This is core/vnl/algo/vnl_fft_base.h 00002 #ifndef vnl_fft_base_h_ 00003 #define vnl_fft_base_h_ 00004 #ifdef VCL_NEEDS_PRAGMA_INTERFACE 00005 #pragma interface 00006 #endif 00007 //: 00008 // \file 00009 // \brief In-place n-D fast Fourier transform 00010 // \author fsm 00011 00012 #include <vcl_complex.h> 00013 #include <vnl/algo/vnl_fft_prime_factors.h> 00014 00015 //: Base class for in-place ND fast Fourier transform. 00016 00017 export template <int D, class T> 00018 struct vnl_fft_base 00019 { 00020 vnl_fft_base() { } 00021 00022 //: dir = +1/-1 according to direction of transform. 00023 void transform(vcl_complex<T> *signal, int dir); 00024 00025 protected: 00026 //: prime factorizations of signal dimensions. 00027 vnl_fft_prime_factors<T> factors_[D]; 00028 }; 00029 00030 #endif // vnl_fft_base_h_