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