return next.mean(); previousMean = (nextIndex2 * next.mean() - nextIndex * next2.mean()) / (nextIndex2 - nextIndex); return quantile(previousIndex, index, nextIndex, previousMean, next.mean()); } else if (!it.hasNext()) { final double nextMean2 = (next.mean() * (nextIndex2 - previousIndex) - previousMean * (nextIndex2 - nextIndex)) / (nextIndex - previousIndex); return quantile(nextIndex, index, nextIndex2, next.mean(), nextMean2); previousMean = next.mean(); previousIndex = nextIndex;
double left = (b.mean() - a.mean()) / 2; double right = left; if (x < a.mean() + right) { return (r + a.count() * AbstractTDigest.interpolate(x, a.mean() - left, a.mean() + right)) / totalWeight; right = (b.mean() - a.mean()) / 2; if (x < a.mean() + right) { return (r + a.count() * AbstractTDigest.interpolate(x, a.mean() - left, a.mean() + right)) / totalWeight; } else { return 1;