private double[][] createVarianceTable(SegmentInfos infos, int last, int maxNumSegments) throws IOException { int maxMergeSegments = last - maxNumSegments + 1; double[][] variance = new double[last][maxMergeSegments]; // compute the optimal segment size long optSize = 0; long[] sizeArr = new long[last]; for (int i = 0; i < sizeArr.length; i++) { sizeArr[i] = size(infos.info(i)); optSize += sizeArr[i]; } optSize = (optSize / maxNumSegments); for (int i = 0; i < last; i++) { long size = 0; for (int j = 0; j < maxMergeSegments; j++) { if ((i + j) < last) { size += sizeArr[i + j]; double residual = ((double) size / (double) optSize) - 1.0d; variance[i][j] = residual * residual; } else { variance[i][j] = Double.NaN; } } } return variance; }
private double[][] createVarianceTable(SegmentInfos infos, int last, int maxNumSegments) throws IOException { int maxMergeSegments = last - maxNumSegments + 1; double[][] variance = new double[last][maxMergeSegments]; // compute the optimal segment size long optSize = 0; long[] sizeArr = new long[last]; for (int i = 0; i < sizeArr.length; i++) { sizeArr[i] = size(infos.info(i)); optSize += sizeArr[i]; } optSize = (optSize / maxNumSegments); for (int i = 0; i < last; i++) { long size = 0; for (int j = 0; j < maxMergeSegments; j++) { if ((i + j) < last) { size += sizeArr[i + j]; double residual = ((double) size / (double) optSize) - 1.0d; variance[i][j] = residual * residual; } else { variance[i][j] = Double.NaN; } } } return variance; }
for(int i = 0; i < sizeArr.length; i++) sizeArr[i] = size(infos.info(i)); optSize += sizeArr[i];