in commons-numbers-gamma/src/main/java/org/apache/commons/numbers/gamma/LogGammaSum.java [42:61]
static double value(double a,
double b) {
if (a < 1 ||
a > 2) {
throw new GammaException(GammaException.OUT_OF_RANGE, a, 1, 2);
}
if (b < 1 ||
b > 2) {
throw new GammaException(GammaException.OUT_OF_RANGE, b, 1, 2);
}
final double x = (a - 1) + (b - 1);
if (x <= 0.5) {
return LogGamma1p.value(1 + x);
} else if (x <= 1.5) {
return LogGamma1p.value(x) + Math.log1p(x);
} else {
return LogGamma1p.value(x - 1) + Math.log(x * (1 + x));
}
}