docs: static double getHipConfidenceUB(final int lgK, final long numCoupons, final double hipEstAccum,
        final int kappa) {
      if (numCoupons == 0) { return 0.0; }
      assert lgK >= 4;
      assert (kappa >= 1) && (kappa <= 3);
      double x = hipErrorConstant;
      if (lgK <= 14) { x = (hipLowSideData[(3 * (lgK - 4)) + (kappa - 1)]) / 10000.0; }
      final double rel = x / sqrt(1 << lgK);
      final double eps = kappa * rel;
      final double est = hipEstAccum;
      final double result = est / (1.0 - eps);
      return ceil(result); // widening for coverage
    }