docs: private static long solveInverseCumulativeProbability(double mean, final double p,
                                                            long lower, long upper) {
  
          while (lower + 1 < upper) {
              long xm = (lower + upper) / 2;
              if (xm < lower || xm > upper) {
                  /*
                   * Overflow.
                   * There will never be an overflow in both calculation methods
                   * for xm at the same time
                   */
                  xm = lower + (upper - lower) / 2;
              }
  
              double pm = checkedCumulativeProbability(mean, xm);
              if (pm >= p) {
                  upper = xm;
              } else {
                  lower = xm;
              }
          }
          return upper;
      }