docs: public double invCdf(double p)
      {
          if (p < 0 || p > 1)
              throw new ArithmeticException("Value of p must be in the range [0,1], not " + p);
          double a = Double.isInfinite(min()) ? Double.MIN_VALUE : min();
          double b = Double.isInfinite(max()) ? Double.MAX_VALUE : max();
  
          //default case, lets just do a root finding on the CDF for the specific value of p
          return Zeroin.root(a, b, (x) -> cdf(x) - p);
      }