in src/main/java/org/apache/datasketches/characterization/uniquecount/BaseSerDeProfile.java [95:125]
private void doTrials() {
final int maxU = 1 << lgMaxU;
final int minU = 1 << lgMinU;
int lastU = 0;
final StringBuilder dataStr = new StringBuilder();
final long[] rawStats = new long[numStats];
final long[] sumStats = new long[numStats];
final double[] meanStats = new double[numStats];
job.println(getHeader());
while (lastU < maxU) { //for each U point on X-axis, OR one row on output
final int nextU = lastU == 0 ? minU : (int)pwr2SeriesNext(uPPO, lastU);
lastU = nextU;
final int trials = getNumTrials(nextU);
Arrays.fill(sumStats, 0);
System.gc(); //much slower but cleaner plots
for (int t = 0; t < trials; t++) {
doTrial(rawStats, nextU); //at this # of uniques
for (int i = 0; i < numStats; i++) {
sumStats[i] += rawStats[i];
}
}
for (int i = 0; i < numStats; i++) {
meanStats[i] = (double)sumStats[i] / trials;
}
process(meanStats, trials, nextU, dataStr);
job.println(dataStr.toString());
}
}