docs: public static double regularizedIncBeta(double x, double alpha, double beta) {
      if(alpha <= 0.0 || beta <= 0.0 || Double.isNaN(alpha) || Double.isNaN(beta) || Double.isNaN(x)) {
        return Double.NaN;
      }
      if(x <= 0.0) {
        return 0.0;
      }
      if(x >= 1.0) {
        return 1.0;
      }
      if(alpha > SWITCH && beta > SWITCH) {
        return regularizedIncBetaQuadrature(alpha, beta, x);
      }
      double bt = FastMath.exp(-logBeta(alpha, beta) + alpha * FastMath.log(x) + beta * FastMath.log1p(-x));
      return (x < (alpha + 1.0) / (alpha + beta + 2.0)) //
          ? bt * regularizedIncBetaCF(alpha, beta, x) / alpha //
          : 1.0 - bt * regularizedIncBetaCF(beta, alpha, 1.0 - x) / beta;
    }