final void compressFloatQueryValuesAndTrueRanks()

in src/main/java/org/apache/datasketches/characterization/kll/KllSketchAccuracyProfile.java [345:370]


  final void compressFloatQueryValuesAndTrueRanks() {
    //find num duplicates
    final int n = trueRanks.length;
    int dups = 0;
    final int[] tmpTrueRanks;
    final float[] tmpFloatQueryValues;
    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];
    tmpFloatQueryValues = new float[cLen];
    int j = 0;
    tmpTrueRanks[0] = trueRanks[0];
    tmpFloatQueryValues[0] = floatQueryValues[0];
    for (int i = 1; i < n; i++) {
      if (trueRanks[i] == trueRanks[i - 1]) { continue; }
      j++;
      tmpTrueRanks[j] = trueRanks[i];
      tmpFloatQueryValues[j] = floatQueryValues[i];
    }
    assert j + 1 == cLen : "(j + 1): " + (j + 1) + ", clen: " + cLen;
    trueRanks = tmpTrueRanks;
    floatQueryValues = tmpFloatQueryValues;
  }