Chris@3:
Chris@7:
Chris@26:
Chris@26:
Chris@26: Javascript FFT speed test
Chris@26:
Chris@26:
Chris@7:
Chris@26:
Chris@26:
Chris@26:
Chris@26:
Chris@26:
Chris@26:
Chris@26:
Chris@26:
Chris@26:
Chris@26:
Chris@26:
Chris@26:
Chris@1:
Chris@7:
Chris@3:
Chris@2:
Chris@26: Forward real-complex FFT speed test
Chris@1:
Chris@3:
Chris@3:
Chris@3:
Chris@3:
Chris@3: Implementation | Result | Time (first half) | Time (second half) | Rate (second half) |
Chris@3:
Chris@3:
Chris@3: Nayuki | | | | |
Chris@17:
Chris@17: Nayuki (obj) | | | | |
Chris@26:
Chris@26: KissFFT | | | | |
Chris@26:
Chris@26: Cross | | | | |
Chris@26:
Chris@26: FFTW | | | | |
Chris@17:
Chris@3: Nockert | | | | |
Chris@3:
Chris@3: Dntj | | | | |
Chris@3:
Chris@3:
Chris@1:
Chris@3: Notes
Chris@1:
Chris@3:
Chris@19: - Nayuki: in-place single-precision complex-complex. Around 7kb.
Chris@19: - Nayuki (obj): Nayuki with the sin/cos tables pre-calculated on object construction. Around 4kb.
Chris@19: - Nockert: double-precision real-complex. Around 25kb.
Chris@17: - Dntj: double-precision complex-complex. Forward
Chris@10: transform is scaled and I've scaled it back again here, which may
Chris@19: introduce rounding error. Around 10kb.
Chris@10: - Cross: double-precision real-complex in C, compiled
Chris@10: with Emscripten. This is considered a slow implementation amongst
Chris@19: native code ones. Around 60kb.
Chris@10: - KissFFT: single-precision real-complex in C, compiled
Chris@19: with Emscripten. A reasonably sophisticated implementation. Around
Chris@19: 70kb.
Chris@19: - FFTW: single-precision real-complex in C, compiled with
Chris@19: Emscripten. GPL licensed. Around 3Mb.
Chris@3:
Chris@3:
Chris@3:
Chris@1: