measure waterfall min/max in two passes, to prevent stack overflow on high fft sizes.
This commit is contained in:
parent
0987a67382
commit
9e70473151
@ -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)
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user