private void processInputStream()

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);
  }