| 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 | 
|---|