in resources/perf.webkit.org/public/shared/statistics.js [598:619]
function findOptimalSegmentationInternal(cost, previousNode, values, costMatrix, segmentCount)
{
cost[0] = new Float32Array([0]); // The cost of segmenting single value is always 0.
previousNode[0] = [-1];
for (var segmentStart = 0; segmentStart < values.length; segmentStart++) {
var costOfOptimalSegmentationThatEndAtCurrentStart = cost[segmentStart];
for (var k = 0; k < segmentCount; k++) {
var noSegmentationOfLenghtKEndsAtCurrentStart = previousNode[segmentStart][k] === undefined;
if (noSegmentationOfLenghtKEndsAtCurrentStart)
continue;
for (var segmentEnd = segmentStart + 1; segmentEnd < values.length; segmentEnd++) {
var costOfOptimalSegmentationOfLengthK = costOfOptimalSegmentationThatEndAtCurrentStart[k];
var costOfCurrentSegment = costMatrix.costBetween(segmentStart, segmentEnd);
var totalCost = costOfOptimalSegmentationOfLengthK + costOfCurrentSegment;
if (previousNode[segmentEnd][k + 1] === undefined || totalCost < cost[segmentEnd][k + 1]) {
cost[segmentEnd][k + 1] = totalCost;
previousNode[segmentEnd][k + 1] = segmentStart;
}
}
}
}
}