# HG changeset patch # User Chris Cannam # Date 1444222749 -3600 # Node ID 9af60df83c6f1e2dacd1f1097a2723558e8ae1ea # Parent 66f9fd5ac61156c7d8493e65f3ff35f844b55f0d Adjust inputs so as to get a nice round number as output diff -r 66f9fd5ac611 -r 9af60df83c6f fft/index.html --- a/fft/index.html Wed Oct 07 13:46:38 2015 +0100 +++ b/fft/index.html Wed Oct 07 13:59:09 2015 +0100 @@ -1,31 +1,32 @@ + + + Javascript FFT speed test + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + -

Results

+

Forward real-complex FFT speed test

@@ -37,16 +38,16 @@ Nayuki Nayuki (obj) + + KissFFT + + Cross + + FFTW Nockert Dntj - - Cross - - KissFFT - - FFTW diff -r 66f9fd5ac611 -r 9af60df83c6f fft/test.js --- a/fft/test.js Wed Oct 07 13:46:38 2015 +0100 +++ b/fft/test.js Wed Oct 07 13:59:09 2015 +0100 @@ -1,11 +1,10 @@ -/* for a phase vocoder, we probably want 2048-point real-to-complex - * FFTs (if available) */ +/* Utility functions to generate arbitrary input in various formats */ function inputReals(size) { var result = new Float32Array(size); for (var i = 0; i < result.length; i++) - result[i] = (i % 20) / 10.0 - 1.0; + result[i] = (i % 2) / 4.0; return result; } @@ -19,21 +18,21 @@ function inputReal64s(size) { var result = new Float64Array(size); for (var i = 0; i < result.length; i++) - result[i] = (i % 20) / 10.0 - 1.0; + result[i] = (i % 2) / 4.0; return result; } function zeroReal64s(size) { var result = new Float64Array(size); for (var i = 0; i < result.length; i++) - result[i] = (i % 20) / 10.0 - 1.0; + result[i] = 0.0; return result; } function inputComplexArray(size) { var result = new complex_array.ComplexArray(size); for (var i = 0; i < size; i++) { - result.real[i] = (i % 20) / 10.0 - 1.0; + result.real[i] = (i % 2) / 4.0; result.imag[i] = 0.0; } return result;