in src/main/java/org/apache/datasketches/characterization/quantiles/tdigest/DoubleRankCalculator.java [37:51]
public double getRank(final double value) {
if (Mode.Min.equals(mode) || Mode.Mid.equals(mode)) {
while ((nLess < values.length) && (values[nLess] < value)) {
nLess++;
}
}
if (Mode.Max.equals(mode) || Mode.Mid.equals(mode)) {
while ((nLessOrEq < values.length) && (values[nLessOrEq] <= value)) {
nLessOrEq++;
}
}
if (Mode.Min.equals(mode)) { return (double) nLess / values.length; }
if (Mode.Max.equals(mode)) { return (double) nLessOrEq / values.length; }
return (nLess + nLessOrEq) / 2.0 / values.length;
}