On 10/20/2013 11:24 PM, t...@apache.org wrote: > 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} **/
I did this change for one class, but I propose to do this whereever applicable to avoid code duplication in the distribution classes. WDYT? Thomas --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org