}
final double afac = -_lnGamma.evaluate(_a) - _lnGamma.evaluate(_b) + _lnGamma.evaluate(_a + _b);
double error;
for (int j = 0; j < 10; j++) {
if (CompareUtils.closeEquals(p, 0, 1e-16) || CompareUtils.closeEquals(p, 1, 1e-16)) {
throw new MathException("a or b too small for accurate evaluation");
}
error = _beta.evaluate(p) - x;
t = Math.exp(a1 * Math.log(p) + b1 * Math.log(1 - p) + afac);
u = error / t;
t = u / (1 - 0.5 * Math.min(1, u * (a1 / p - b1 / (1 - p))));