in src/main/java/org/apache/datasketches/characterization/hll/HllBoundsAccuracyProfile.java [57:87]
public void doTrial() {
final int qArrLen = qArr.length;
sketch.reset(); //reuse the same sketch
long lastUniques = 0;
if (useComposite) {
for (int i = 0; i < qArrLen; i++) {
final BoundsAccuracyStats q = qArr[i];
final long delta = (long)(q.trueValue - lastUniques);
for (long u = 0; u < delta; u++) {
sketch.update(++vIn);
}
lastUniques += delta;
final double est = sketch.getCompositeEstimate();
q.update(est,
sketch.getLowerBound(3), sketch.getLowerBound(2), sketch.getLowerBound(1),
sketch.getUpperBound(1), sketch.getUpperBound(2), sketch.getUpperBound(3));
}
} else { //use longs; use HIP
for (int i = 0; i < qArrLen; i++) { //loop through all Trials Points
final BoundsAccuracyStats q = qArr[i];
final long delta = (long)(q.trueValue - lastUniques);
for (long u = 0; u < delta; u++) {
sketch.update(++vIn);
}
lastUniques += delta;
final double est = sketch.getEstimate();
q.update(est, sketch.getLowerBound(3), sketch.getLowerBound(2), sketch.getLowerBound(1),
sketch.getUpperBound(1), sketch.getUpperBound(2), sketch.getUpperBound(3));
}
}
}