Author: tn Date: Sun Oct 20 21:24:45 2013 New Revision: 1533990 URL: http://svn.apache.org/r1533990 Log: [MATH-1039] Avoid code duplication by calling logDensity itself.
Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/distribution/BetaDistribution.java Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/distribution/BetaDistribution.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/distribution/BetaDistribution.java?rev=1533990&r1=1533989&r2=1533990&view=diff ============================================================================== --- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/distribution/BetaDistribution.java (original) +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/distribution/BetaDistribution.java Sun Oct 20 21:24:45 2013 @@ -136,24 +136,8 @@ public class BetaDistribution extends Ab /** {@inheritDoc} */ public double density(double x) { - recomputeZ(); - if (x < 0 || x > 1) { - return 0; - } else if (x == 0) { - if (alpha < 1) { - throw new NumberIsTooSmallException(LocalizedFormats.CANNOT_COMPUTE_BETA_DENSITY_AT_0_FOR_SOME_ALPHA, alpha, 1, false); - } - return 0; - } else if (x == 1) { - if (beta < 1) { - throw new NumberIsTooSmallException(LocalizedFormats.CANNOT_COMPUTE_BETA_DENSITY_AT_1_FOR_SOME_BETA, beta, 1, false); - } - return 0; - } else { - double logX = FastMath.log(x); - double log1mX = FastMath.log1p(-x); - return FastMath.exp((alpha - 1) * logX + (beta - 1) * log1mX - z); - } + final double logDensity = logDensity(x); + return logDensity == Double.NEGATIVE_INFINITY ? 0 : FastMath.exp(logDensity); } /** {@inheritDoc} **/