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