vnl_fft.h
Go to the documentation of this file.
1 // This is core/vnl/algo/vnl_fft.h
2 #ifndef vnl_fft_h_
3 #define vnl_fft_h_
4 //:
5 // \file
6 // \author fsm
7 
8 #ifdef _MSC_VER
9 # include <vcl_msvc_warnings.h>
10 #endif
11 #include <vnl/algo/vnl_algo_export.h>
12 
13 //: use C++ overloading to find the correct FORTRAN routine from templated FFT code.
14 void VNL_ALGO_EXPORT vnl_fft_setgpfa(float *triggs, long size, long pqr[3], long *info);
15 //: use C++ overloading to find the correct FORTRAN routine from templated FFT code.
16 void VNL_ALGO_EXPORT vnl_fft_setgpfa(double *triggs, long size, long pqr[3], long *info);
17 
18 
19 // CALL GPFA(A,B,TRIGS,INC,JUMP,N,LOT,ISIGN,NIPQ,INFO)
20 //
21 // A IS FIRST REAL INPUT/OUTPUT VECTOR
22 // B IS FIRST IMAGINARY INPUT/OUTPUT VECTOR
23 // TRIGS IS A TABLE OF TWIDDLE FACTORS, PRECALCULATED
24 // BY CALLING SUBROUTINE 'SETGPFA'
25 // INC IS THE INCREMENT WITHIN EACH DATA VECTOR
26 // JUMP IS THE INCREMENT BETWEEN DATA VECTORS
27 // N IS THE LENGTH OF THE TRANSFORMS:
28 // -----------------------------------
29 // N = (2**IP) * (3**IQ) * (5**IR)
30 // -----------------------------------
31 // LOT IS THE NUMBER OF TRANSFORMS
32 // ISIGN = +1 FOR FORWARD TRANSFORM
33 // = -1 FOR INVERSE TRANSFORM
34 // NIPQ is an array containing the number of factors (for
35 // power of 2,3 and 5
36 // INFO is set to -1 if there is a problem, 0 otherwise
37 
38 // These functions perform a number (LOT) of 1D FFTs, each of the same signal size (N).
39 // The signal is stored in two real arrays (A, B), with consecutive elements separated
40 // by a stride (INC). The separation between the LOT signals to be transformed is JUMP.
41 void VNL_ALGO_EXPORT vnl_fft_gpfa(float *a, float *b, float const *triggs,
42  long inc, long jump, long n,
43  long lot, long isign, long const pqr[3], long *info);
44 void VNL_ALGO_EXPORT vnl_fft_gpfa(double *a, double *b, double const *triggs,
45  long inc, long jump, long n,
46  long lot, long isign, long const pqr[3], long *info);
47 
48 #endif // vnl_fft_h_
void VNL_ALGO_EXPORT vnl_fft_gpfa(float *a, float *b, float const *triggs, long inc, long jump, long n, long lot, long isign, long const pqr[3], long *info)
Definition: vnl_fft.cxx:20
void VNL_ALGO_EXPORT vnl_fft_setgpfa(float *triggs, long size, long pqr[3], long *info)
use C++ overloading to find the correct FORTRAN routine from templated FFT code.
Definition: vnl_fft.cxx:8