fix_fft: FFTs using fixed point arthmetic
in C, includes test routine
fix_fft.tar.gz Written by Tom Roberts (1989), improved by Malcolm Slaney (1994), made portable (ix86 assembly removed) by Dimitrios P. Bouras (2006).
C source for an FFT-generator for integer FFTs for asm (80x86, 68k and 32k processors) and for C-code. fftgen.tgz first read the fftgen-doc.txt
C++ source (template) for complex FFT you can supply a class complex (e.g. based on fixed point floats) with the operators =,+,-,* and this code gives you a FFT for it. cplxfft.h
FFTReal: FFTs for real data
in C++ and Delphi: http://ldesoras.free.fr/prod.html by Laurent de Soras. Delphi port by Frederic Vanmol.
2dim Hartley transform code
in C++ mogenet-2dimfht.cc by Emmanuel Mogenet
1dim and 2dim DCT (cosine transform) code
dct.tgz, here is the doc: dct-doc.txt
This was from the server that disappeared from the net (ftp://ftp.crs4.it/mpeg/misc-progs/). Find a local copy here
C source for Prime Factor Algorithm
convolution, Hankel transform, Hilbert transform, Abel transform
and much more, worth a closer look
cwplib.tgz first read the cwplib-doc.txt
A double precision version (with 'reverse engineered' magic constants) of the pfafft is here
FORTRAN code for General Prime Factor Algorithm
1,2,3-dim, by C.Temperton.
gpfa.tgz first read the gpfa-doc.txt. This code really needs a doc, test failed on my machine ...
C code n-dimensional FFTs: FFTEASY: by Gary Felder and Jiří Janáček: here. Local copies of the description (pdf) and the code ffteasyjj.c
FORTRAN (and f2c'd C) source for
Glassman's General N FFT,
length doesn't need to be a power of 2,
degenerates into a DFT for prime lengths.
Author unknown (cf. glassman-note.txt), I received the code from Reginald Beardsley. Thanks to him!
C (and FORTRAN) source for n-dim FFT, length doesn't need to be a power of 2, split radix algorithm, test program included, corrected version of 8-jan-1996: fft-n.tgz first read the fft-n-doc.txt.
C source for
first read the
Peter Schuck found a typo: fftnfix.txt
C source for
modernized and cleaned up by Stefan Gustavson:
The old version (as reference, superseded by the above): code: kube_fft.c and mini-doc: kube_fft-doc.txt
FORTRAN source for (complex and real) split radix FFT (by Henrik Sorensen): sorensen.tgz or sorensen.shar first read the sorensen-doc.txt
C source for split radix FFT (data length may be not a power of 2). fftsing.tgz first read the fftsing-doc.txt
C source for split radix real FFT (data length a power of 2) rsplitfft.c.
FORTRAN source for
(data length may be not a power of 2).
ten_eyke.f first read the ten_eyke-doc.txt. No further doc available.
C source for real and complex FFTs not only for data length a power of two fft2.tgz first read the fft2-doc.txt
FFTW: benchmarks & C code
FFTW, the authors claim that it's one of the fastest.
C source by Jens Jørgen Nielsen for FFTs not only for data length a power of two, see Mix FFT.
C source for real and complex
FFTs + sine/cosine transforms + special code for even/odd sequences
based on Schwartztraubers FORTRAN fftpack (in netlib), see the index below.
Taken from Pekka Janhunen's tela-package
(original site is ftp.funet.fi).
Warning: read tela-bugreport.txt.
The files after some cosmetic changes: telafft.tgz (no doc)
Almost original version plus my modification script: telaffto.tgz (no doc)
The untouched original files from the package: telafftx.tgz (no doc)
Index of the single prec fortran original: fftpack.my.index
Get the FORTRAN original (float: fftpack, double: bihar) from netlib. Netlib is: netlib@XXX where XXX is in europe: nac.no, in USA: ornl.gov (others exist). Send an email with subject 'send help'.
Now there is a www-netlib site, there see fftpack and vfftpack
More FORTRAN code (trig/hankel transforms-, convolution-, correlation- and wavelet code in the packages IMSL, NAG, SCILIB, TOMS and VECLIB) at http://gams.nist.gov/serve.cgi/Class/J/
FORTRAN source and C source for the FFTpack from Schwartztrauber: rfft-1.2-ss-9.01.tgz, first read the rfft-doc.txt.
A remark on real valued FFTs: realfft.txt
convolution code: read conv.txt then get the code: conv-v1.1.tar.gz