in src/main/java/org/apache/datasketches/characterization/quantiles/ExactStreamAProfile.java [102:147]
private void processInputStream() {
checkIfZipped(srcFileName);
long startTime_nS;
//Read
job.println("Input Lines Processed: ");
final LineReader lineReader = new LineReader(srcFileName);
startTime_nS = System.nanoTime();
lineReader.read(0, proc);
final long readTime_nS = System.nanoTime() - startTime_nS;
assert proc.n == numItems;
//Sort
job.println("Sort input data");
startTime_nS = System.nanoTime();
Arrays.sort(dataArr);
final long sortTime_nS = System.nanoTime() - startTime_nS;
job.println("Sort done");
//Compute CDF & PMF
minV = dataArr[0];
maxV = dataArr[numItems - 1];
assert maxV > minV;
//outputs
//ranksArr and quantilesArr already initialized
spArr = buildSplitPointsArr(minV, maxV, pplb, lb, eps);
checkMonotonic(spArr);
numSP = spArr.length;
spCounts = new long[numSP];
job.println("");
printExactPercentiles(dataArr);
job.println("End Percentiles");
job.println("");
job.println("Process PMF");
startTime_nS = System.nanoTime();
processExactPmf(dataArr, spArr, spCounts);//, ranksArr, quantilesArr, cdfIdxArr);
final long processTime_nS = System.nanoTime() - startTime_nS;
job.println("End Process PMF");
job.println("");
printPMF();
job.println("");
printTimes(readTime_nS, sortTime_nS, processTime_nS);
}