@Override public double percentile(double percent) { return state.quantile(percent / 100); }
@Override public Percentile next() { final Percentile next = new Percentile(percents[i], state.quantile(percents[i] / 100)); ++i; return next; }
@Override public double metric(String name, long bucketOrd) { TDigestState state = getState(bucketOrd); if (state == null) { return Double.NaN; } else { return state.quantile(Double.parseDouble(name) / 100); } }
static double computeMedianAbsoluteDeviation(TDigestState valuesSketch) { if (valuesSketch.size() == 0) { return Double.NaN; } else { final double approximateMedian = valuesSketch.quantile(0.5); final TDigestState approximatedDeviationsSketch = new TDigestState(valuesSketch.compression()); valuesSketch.centroids().forEach(centroid -> { final double deviation = Math.abs(approximateMedian - centroid.mean()); approximatedDeviationsSketch.add(deviation, centroid.count()); }); return approximatedDeviationsSketch.quantile(0.5); } }
@Override public double percentile(double percent) { return state.quantile(percent / 100); }
@Override public double percentile(double percent) { return state.quantile(percent / 100); }
@Override public double percentile(double percent) { return state.quantile(percent / 100); }
@Override public double percentile(double percent) { return state.quantile(percent / 100); }
@Override public Percentile next() { final Percentile next = new Percentile(percents[i], state.quantile(percents[i] / 100)); ++i; return next; }
@Override public double metric(String name, long bucketOrd) { TDigestState state = getState(bucketOrd); if (state == null) { return Double.NaN; } else { return state.quantile(Double.parseDouble(name) / 100); } }
@Override public double metric(String name, long bucketOrd) { TDigestState state = getState(bucketOrd); if (state == null) { return Double.NaN; } else { return state.quantile(Double.parseDouble(name) / 100); } }
@Override public Percentile next() { final Percentile next = new Percentile(percents[i], state.quantile(percents[i] / 100)); ++i; return next; }
@Override public Percentile next() { final Percentile next = new Percentile(percents[i], state.quantile(percents[i] / 100)); ++i; return next; }
@Override public double metric(String name, long bucketOrd) { TDigestState state = getState(bucketOrd); if (state == null) { return Double.NaN; } else { return state.quantile(Double.parseDouble(name) / 100); } }
@Override public double metric(String name, long bucketOrd) { TDigestState state = getState(bucketOrd); if (state == null) { return Double.NaN; } else { return state.quantile(Double.parseDouble(name) / 100); } }
@Override public Percentile next() { final Percentile next = new InternalPercentile(percents[i], state.quantile(percents[i] / 100)); ++i; return next; } }