code: public float getQuantile(final double fraction) {
      if (isEmpty()) { return Float.NaN; }
      if (fraction == 0.0) { return minValue_; }
      if (fraction == 1.0) { return maxValue_; }
      if ((fraction < 0.0) || (fraction > 1.0)) {
        throw new SketchesArgumentException("Fraction cannot be less than zero or greater than 1.0");
      }
      final KllFloatsQuantileCalculator quant = getQuantileCalculator();
      return quant.getQuantile(fraction);
    }
docs: Returns an approximation to the value of the data item
  that would be preceded by the given fraction of a hypothetical sorted
  version of the input stream so far.
  
  <p>We note that this method has a fairly large overhead (microseconds instead of nanoseconds)
  so it should not be called multiple times to get different quantiles from the same
  sketch. Instead use getQuantiles(), which pays the overhead only once.
  
  <p>If the sketch is empty this returns NaN.
  
  @param fraction the specified fractional position in the hypothetical sorted stream.
  These are also called normalized ranks or fractional ranks.
  If fraction = 0.0, the true minimum value of the stream is returned.
  If fraction = 1.0, the true maximum value of the stream is returned.
  
  @return the approximation to the value at the given fraction