Reply by Mark Borgerding October 29, 20032003-10-29
mark@borgerding.net (Mark Borgerding) wrote in message news:<5d6e06ef.0310271939.2c0b4465@posting.google.com>...
> FFT libraries don't need to be that complicated. > http://sourceforge.net/projects/kissfft/
Woops! That was a fast release cycle. Version 0.3 is now out. There is a one line change in the kiss_fft.c source: the line that contained the radices. Without going into the details, I found out that using dd if=/dev/zero is a terrible source of input data for a benchmark.
Reply by Mark Borgerding October 27, 20032003-10-27
FFT libraries don't need to be that complicated.
http://sourceforge.net/projects/kissfft/

KISS FFT:
A mixed-radix Fast Fourier Transform based up on the principle,
"Keep It Simple, Stupid."

    There are many great fft libraries already around.  Kiss FFT is not trying
to be better than any of them.  It only attempts to be a reasonably efficient,
moderately useful FFT that can use fixed or floating data types and can be
incorporated into someone's C program in a few minutes with trivial licensing.

USAGE:

    The basic usage is:

        void * cfg = kiss_fft_alloc( nfft ,inverse_fft );
        while ...
            ... // put kth sample in cx_buf_in_out[k].r and cx_buf_in_out[k].i
            kiss_fft( cfg , cx_buf_in_out );
            ... // transformed
        free(cfg);


Pros:
* mixed-radix (not just powers of 2)
* fixed point (short), float, or double processing
* 300 lines of portable ANSI C
* BSD licensed

Con:
* 3 - 5 times slower than FFTW

http://sourceforge.net/projects/kissfft/