# 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;