Forward real-complex FFT speed test
| Implementation | Result | Time (first half) | Time (second half) | Rate (second half) |
| Nayuki | | | | |
| Nayuki (obj) | | | | |
| Nayuki (C) | | | | |
| Nayuki (C-float) | | | | |
| KissFFT | | | | |
| KissFFT (c2c) | | | | |
| Cross | | | | |
| FFTW | | | | |
| Nockert | | | | |
| Dntj | | | | |
Notes
- Nayuki: in-place double-precision (native JS number type) complex-complex. Around 7kb.
- Nayuki (obj): Nayuki with the sin/cos tables pre-calculated on object construction. Around 4kb.
- Nayuki (C): Nayuki C implementation compiled with Emscripten, with the sin/cos tables pre-calculated.
- Nayuki (C-float): as Nayuki (C) but using single-precision instead of double-precision floats.
- Nockert: double-precision real-complex. Around 25kb.
- Dntj: double-precision complex-complex. Forward
transform is scaled and I've scaled it back again here. Around 10kb.
- Cross: double-precision real-complex in C, compiled
with Emscripten. This is considered a slow implementation amongst
native code ones. Around 60kb.
- KissFFT: single-precision real-complex in C, compiled
with Emscripten. A reasonably sophisticated implementation. Around
70kb.
- KissFFT (c2c): as KissFFT but using the complex-complex
transform (although with real-valued inputs).
- FFTW: single-precision real-complex in C, compiled with
Emscripten. GPL licensed. Around 3Mb.