Author: tn Date: Mon Oct 21 20:28:05 2013 New Revision: 1534363 URL: http://svn.apache.org/r1534363 Log: Replace impl of NormalDistribution.density by calling FastMath.exp(logDensity()) which should be faster.
Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/distribution/NormalDistribution.java Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/distribution/NormalDistribution.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/distribution/NormalDistribution.java?rev=1534363&r1=1534362&r2=1534363&view=diff ============================================================================== --- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/distribution/NormalDistribution.java (original) +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/distribution/NormalDistribution.java Mon Oct 21 20:28:05 2013 @@ -41,8 +41,6 @@ public class NormalDistribution extends public static final double DEFAULT_INVERSE_ABSOLUTE_ACCURACY = 1e-9; /** Serializable version identifier. */ private static final long serialVersionUID = 8589540077390120676L; - /** √(2 π) */ - private static final double SQRT2PI = FastMath.sqrt(2 * FastMath.PI); /** √(2) */ private static final double SQRT2 = FastMath.sqrt(2.0); /** Mean of this distribution. */ @@ -150,9 +148,7 @@ public class NormalDistribution extends /** {@inheritDoc} */ public double density(double x) { - final double x0 = x - mean; - final double x1 = x0 / standardDeviation; - return FastMath.exp(-0.5 * x1 * x1) / (standardDeviation * SQRT2PI); + return FastMath.exp(logDensity(x)); } /** {@inheritDoc} */