final void compressDoubleQueryValues()

in src/main/java/org/apache/datasketches/characterization/kll/KllSketchAccuracyProfile.java [261:286]


  final void compressDoubleQueryValues() {
    //find num duplicates
    final int n = trueRanks.length;
    int dups = 0;
    final int[] tmpTrueRanks;
    final double[] tmpDoubleQueryValues;
    for (int i = 1; i < n; i++) {
      if (trueRanks[i] == trueRanks[i - 1]) { dups++; }
    }
    if (dups == 0) { return; }
    final int cLen = n - dups;
    tmpTrueRanks = new int[cLen];
    tmpDoubleQueryValues = new double[cLen];
    int j = 0;
    tmpTrueRanks[0] = trueRanks[0];
    tmpDoubleQueryValues[0] = doubleQueryValues[0];
    for (int i = 1; i < n; i++) {
      if (trueRanks[i] == trueRanks[i - 1]) { continue; }
      j++;
      tmpTrueRanks[j] = trueRanks[i];
      tmpDoubleQueryValues[j] = doubleQueryValues[i];
    }
    assert j + 1 == cLen : "(j + 1): " + (j + 1) + ", clen: " + cLen;
    trueRanks = tmpTrueRanks;
    doubleQueryValues = tmpDoubleQueryValues;
  }