measure waterfall min/max in two passes, to prevent stack overflow on high fft sizes.

This commit is contained in:
J.W. Jagersma 2020-09-13 22:34:51 +02:00
parent 0987a67382
commit 9e70473151
No known key found for this signature in database
GPG Key ID: 438BF81BA7510C54

View File

@ -1088,9 +1088,19 @@ function waterfall_measure_minmax_do(what) {
// this is based on an oversampling factor of about 1,25 // this is based on an oversampling factor of about 1,25
var ignored = .1 * what.length; var ignored = .1 * what.length;
var data = what.slice(ignored, -ignored); var data = what.slice(ignored, -ignored);
var min = [];
var max = [];
var max_slice = 1e5;
var n = Math.ceil(data.length / max_slice);
for (var i = 0; i < n; ++i)
{
slice = data.slice(i * max_slice, (i + 1) * max_slice);
min.push(Math.min.apply(Math, slice));
max.push(Math.max.apply(Math, slice));
}
return { return {
min: Math.min.apply(Math, data), min: Math.min.apply(Math, min),
max: Math.max.apply(Math, data) max: Math.max.apply(Math, max)
}; };
} }