Sorry to dig up an old thread but somehow I missed it at the time....
@scruss,
It's not a particularly good benchmark...
Wait a minute, that's my pride and joy you are talking about!
But, yes you are right. It was not originally intended as a benchmark. The original code had two purposes:
1) I wanted to learn enough about the Fast Fourier Transform that I could write one of my own, from scratch. Even if the end result was not the worlds most optimized FFT. Mission accomplished.
2) I wanted to write an FFT for the Parallax Inc. Propeller micro-controller. To get any speed it would have to be written in assembler. The Propeller has no floating point hardware so it had to use 32 bit integers and fixed point arithmetic. That C code was the "pseudo code" for the assembler version. Mission accomplished.
After that in became a benchmark in a rather unusual sense. You see there were three C compilers for the Propeller so it could be used to compare them in some way. Then versions of that code were written in Spin, a high level language for the Propeller, and other languages. Provided the alternative language implementations closely followed steps and operations of the C version it became a way of comparing languages. At that point it is no longer about being an FFT but rather just a blob of code that does typical operations any program on an MCU might do.
As such I'd be very interested to see the Java version of fft_bench. I could add it to the collection.
@OtherCrashOverride
Ported. See topic in first post for results.
Thanks for posting the Java and C# versions. I have added them to the github repo:
https://github.com/ZiCog/fftbench
Memory in C++ is a leaky abstraction .