in resources/perf.webkit.org/public/shared/statistics.js [252:273]
this.segmentTimeSeriesByMaximizingSchwarzCriterion = function (values, segmentCountWeight, gridSize) {
// Split the time series into grids since splitIntoSegmentsUntilGoodEnough is O(n^2).
var gridLength = gridSize || 500;
var totalSegmentation = [0];
for (var gridCount = 0; gridCount < Math.ceil(values.length / gridLength); gridCount++) {
var gridValues = values.slice(gridCount * gridLength, (gridCount + 1) * gridLength);
var segmentation = splitIntoSegmentsUntilGoodEnough(gridValues, segmentCountWeight);
if (Statistics.debuggingSegmentation)
console.log('grid=' + gridCount, segmentation);
for (var i = 1; i < segmentation.length - 1; i++)
totalSegmentation.push(gridCount * gridLength + segmentation[i]);
}
if (Statistics.debuggingSegmentation)
console.log('Final Segmentation', totalSegmentation);
totalSegmentation.push(values.length);
return totalSegmentation;
}