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@32:
Chris@32:
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@32:
Chris@32: Nayuki (C) | | | | |
Chris@37:
Chris@37: Nayuki (C-float) | | | | |
Chris@26:
Chris@26: KissFFT | | | | |
Chris@26:
Chris@37: KissFFT (c2c) | | | | |
Chris@37:
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@34: - Nayuki: in-place double-precision (native JS number type) complex-complex. Around 7kb.
Chris@19: - Nayuki (obj): Nayuki with the sin/cos tables pre-calculated on object construction. Around 4kb.
Chris@36: - Nayuki (C): Nayuki C implementation compiled with Emscripten, with the sin/cos tables pre-calculated.
Chris@37: - Nayuki (C-float): as Nayuki (C) but using single-precision instead of double-precision floats.
Chris@19: - Nockert: double-precision real-complex. Around 25kb.
Chris@17: - Dntj: double-precision complex-complex. Forward
Chris@34: transform is scaled and I've scaled it back again here. 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@37: - KissFFT (c2c): as KissFFT but using the complex-complex
Chris@37: transform (although with real-valued inputs).
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: