| [394] | 1 | /*
 | 
|---|
 | 2 | ** FFT and FHT routines
 | 
|---|
 | 3 | **  Copyright 1988, 1993; Ron Mayer
 | 
|---|
 | 4 | **  
 | 
|---|
 | 5 | **  fht(fz,n);
 | 
|---|
 | 6 | **      Does a hartley transform of "n" points in the array "fz".
 | 
|---|
 | 7 | **  fft(n,real,imag)
 | 
|---|
 | 8 | **      Does a fourier transform of "n" points of the "real" and
 | 
|---|
 | 9 | **      "imag" arrays.
 | 
|---|
 | 10 | **  ifft(n,real,imag)
 | 
|---|
 | 11 | **      Does an inverse fourier transform of "n" points of the "real"
 | 
|---|
 | 12 | **      and "imag" arrays.
 | 
|---|
 | 13 | **  realfft(n,real)
 | 
|---|
 | 14 | **      Does a real-valued fourier transform of "n" points of the
 | 
|---|
 | 15 | **      "real" arrays.  The real part of the transform ends
 | 
|---|
 | 16 | **      up in the first half of the array and the imaginary part of the
 | 
|---|
 | 17 | **      transform ends up in the second half of the array.
 | 
|---|
 | 18 | **  realifft(n,real)
 | 
|---|
 | 19 | **      The inverse of the realfft() routine above.
 | 
|---|
 | 20 | **      
 | 
|---|
 | 21 | **      
 | 
|---|
 | 22 | ** NOTE: This routine uses at least 2 patented algorithms, and may be
 | 
|---|
 | 23 | **       under the restrictions of a bunch of different organizations.
 | 
|---|
 | 24 | **       Although I wrote it completely myself; it is kind of a derivative
 | 
|---|
 | 25 | **       of a routine I once authored and released under the GPL, so it
 | 
|---|
 | 26 | **       may fall under the free software foundation's restrictions;
 | 
|---|
 | 27 | **       it was worked on as a Stanford Univ project, so they claim
 | 
|---|
 | 28 | **       some rights to it; it was further optimized at work here, so
 | 
|---|
 | 29 | **       I think this company claims parts of it.  The patents are
 | 
|---|
 | 30 | **       held by R. Bracewell (the FHT algorithm) and O. Buneman (the
 | 
|---|
 | 31 | **       trig generator), both at Stanford Univ.
 | 
|---|
 | 32 | **       If it were up to me, I'd say go do whatever you want with it;
 | 
|---|
 | 33 | **       but it would be polite to give credit to the following people
 | 
|---|
 | 34 | **       if you use this anywhere:
 | 
|---|
 | 35 | **           Euler     - probable inventor of the fourier transform.
 | 
|---|
 | 36 | **           Gauss     - probable inventor of the FFT.
 | 
|---|
 | 37 | **           Hartley   - probable inventor of the hartley transform.
 | 
|---|
 | 38 | **           Buneman   - for a really cool trig generator
 | 
|---|
 | 39 | **           Mayer(me) - for authoring this particular version and
 | 
|---|
 | 40 | **                       including all the optimizations in one package.
 | 
|---|
 | 41 | **       Thanks,
 | 
|---|
 | 42 | **       Ron Mayer; mayer@acuson.com
 | 
|---|
 | 43 | **
 | 
|---|
 | 44 | */
 | 
|---|
 | 45 | 
 | 
|---|
 | 46 | #ifndef FFTMayer_SEEN
 | 
|---|
 | 47 | #define FFTMayer_SEEN
 | 
|---|
 | 48 |         void fht( double *fz,int n);
 | 
|---|
 | 49 |         void ifft(int n, double *real, double *imag);   
 | 
|---|
 | 50 |         void realfft(int n, double *real);
 | 
|---|
 | 51 |         void fft(int n, double *real,double *imag);
 | 
|---|
 | 52 |         void realifft(int n,double *real);
 | 
|---|
 | 53 |         
 | 
|---|
 | 54 | #endif | 
|---|