You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ce...@apache.org on 2011/11/26 11:17:52 UTC
svn commit: r1206421 - in /commons/proper/math/trunk/src:
main/java/org/apache/commons/math/distribution/
main/java/org/apache/commons/math/random/
main/java/org/apache/commons/math/stat/inference/
test/java/org/apache/commons/math/distribution/ test/j...
Author: celestin
Date: Sat Nov 26 10:17:49 2011
New Revision: 1206421
URL: http://svn.apache.org/viewvc?rev=1206421&view=rev
Log:
Merged NormalDistribution and NormalDistributionImpl (MATH-711).
Merged PascalDistribution and PascalDistributionImpl (MATH-711).
Added:
commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/NormalDistribution.java
- copied, changed from r1206052, commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/NormalDistributionImpl.java
commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/PascalDistribution.java
- copied, changed from r1206052, commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/PascalDistributionImpl.java
Removed:
commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/NormalDistributionImpl.java
commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/PascalDistributionImpl.java
Modified:
commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/PoissonDistributionImpl.java
commons/proper/math/trunk/src/main/java/org/apache/commons/math/random/RandomDataImpl.java
commons/proper/math/trunk/src/main/java/org/apache/commons/math/stat/inference/MannWhitneyUTestImpl.java
commons/proper/math/trunk/src/main/java/org/apache/commons/math/stat/inference/WilcoxonSignedRankTestImpl.java
commons/proper/math/trunk/src/test/java/org/apache/commons/math/distribution/CauchyDistributionTest.java
commons/proper/math/trunk/src/test/java/org/apache/commons/math/distribution/NormalDistributionTest.java
commons/proper/math/trunk/src/test/java/org/apache/commons/math/distribution/PascalDistributionTest.java
commons/proper/math/trunk/src/test/java/org/apache/commons/math/random/RandomDataTest.java
Copied: commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/NormalDistribution.java (from r1206052, commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/NormalDistributionImpl.java)
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/NormalDistribution.java?p2=commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/NormalDistribution.java&p1=commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/NormalDistributionImpl.java&r1=1206052&r2=1206421&rev=1206421&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/NormalDistributionImpl.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/NormalDistribution.java Sat Nov 26 10:17:49 2011
@@ -26,13 +26,14 @@ import org.apache.commons.math.special.E
import org.apache.commons.math.util.FastMath;
/**
- * Default implementation of
- * {@link org.apache.commons.math.distribution.NormalDistribution}.
+ * Implementation of the normal (gaussian) distribution.
*
+ * @see <a href="http://en.wikipedia.org/wiki/Normal_distribution">Normal distribution (Wikipedia)</a>
+ * @see <a href="http://mathworld.wolfram.com/NormalDistribution.html">Normal distribution (MathWorld)</a>
* @version $Id$
*/
-public class NormalDistributionImpl extends AbstractContinuousDistribution
- implements NormalDistribution, Serializable {
+public class NormalDistribution extends AbstractContinuousDistribution
+ implements Serializable {
/**
* Default inverse cumulative probability accuracy.
* @since 2.1
@@ -56,8 +57,10 @@ public class NormalDistributionImpl exte
*
* @param mean Mean for this distribution.
* @param sd Standard deviation for this distribution.
+ * @throws NotStrictlyPositiveException if {@code sd <= 0}.
*/
- public NormalDistributionImpl(double mean, double sd){
+ public NormalDistribution(double mean, double sd)
+ throws NotStrictlyPositiveException {
this(mean, sd, DEFAULT_INVERSE_ABSOLUTE_ACCURACY);
}
@@ -71,7 +74,7 @@ public class NormalDistributionImpl exte
* @throws NotStrictlyPositiveException if {@code sd <= 0}.
* @since 2.1
*/
- public NormalDistributionImpl(double mean, double sd, double inverseCumAccuracy) {
+ public NormalDistribution(double mean, double sd, double inverseCumAccuracy) {
if (sd <= 0) {
throw new NotStrictlyPositiveException(LocalizedFormats.STANDARD_DEVIATION, sd);
}
@@ -85,27 +88,29 @@ public class NormalDistributionImpl exte
* Create a normal distribution with mean equal to zero and standard
* deviation equal to one.
*/
- public NormalDistributionImpl(){
+ public NormalDistribution(){
this(0, 1);
}
/**
- * {@inheritDoc}
+ * Access the mean.
+ *
+ * @return the mean for this distribution.
*/
public double getMean() {
return mean;
}
/**
- * {@inheritDoc}
+ * Access the standard deviation.
+ *
+ * @return the standard deviation for this distribution.
*/
public double getStandardDeviation() {
return standardDeviation;
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
public double density(double x) {
final double x0 = x - mean;
final double x1 = x0 / standardDeviation;
@@ -115,8 +120,9 @@ public class NormalDistributionImpl exte
/**
* {@inheritDoc}
*
- * If {@code x} is more than 40 standard deviations from the mean, 0 or 1 is returned,
- * as in these cases the actual value is within {@code Double.MIN_VALUE} of 0 or 1.
+ * If {@code x} is more than 40 standard deviations from the mean, 0 or 1
+ * is returned, as in these cases the actual value is within
+ * {@code Double.MIN_VALUE} of 0 or 1.
*/
public double cumulativeProbability(double x) {
final double dev = x - mean;
@@ -126,11 +132,10 @@ public class NormalDistributionImpl exte
return 0.5 * (1 + Erf.erf(dev / (standardDeviation * SQRT2)));
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
- public double cumulativeProbability(double x0, double x1) throws NumberIsTooLargeException {
+ public double cumulativeProbability(double x0, double x1)
+ throws NumberIsTooLargeException {
if (x0 > x1) {
throw new NumberIsTooLargeException(LocalizedFormats.LOWER_ENDPOINT_ABOVE_UPPER_ENDPOINT,
x0, x1, true);
@@ -141,13 +146,7 @@ public class NormalDistributionImpl exte
return 0.5 * Erf.erf(v0, v1);
}
- /**
- * Return the absolute accuracy setting of the solver used to estimate
- * inverse cumulative probabilities.
- *
- * @return the solver absolute accuracy.
- * @since 2.1
- */
+ /** {@inheritDoc} */
@Override
protected double getSolverAbsoluteAccuracy() {
return solverAbsoluteAccuracy;
@@ -156,8 +155,8 @@ public class NormalDistributionImpl exte
/**
* {@inheritDoc}
*
- * It will return {@code Double.NEGATIVE_INFINITY} when {@code p = 0}
- * and {@code Double.POSITIVE_INFINITY} for {@code p = 1}.
+ * Returns {@code Double.NEGATIVE_INFINITY} when {@code p == 0}
+ * and {@code Double.POSITIVE_INFINITY} for {@code p == 1}.
*/
@Override
public double inverseCumulativeProbability(final double p) {
@@ -170,25 +169,13 @@ public class NormalDistributionImpl exte
return super.inverseCumulativeProbability(p);
}
- /**
- * Generate a random value sampled from this distribution.
- *
- * @return a random value.
- * @since 2.2
- */
+ /** {@inheritDoc} */
@Override
public double sample() {
return randomData.nextGaussian(mean, standardDeviation);
}
- /**
- * Access the domain value lower bound, based on {@code p}, used to
- * bracket a CDF root. This method is used by
- * {@link #inverseCumulativeProbability(double)} to find critical values.
- *
- * @param p Desired probability for the critical value.
- * @return the domain value lower bound, i.e. {@code P(X < 'lower bound') < p}.
- */
+ /** {@inheritDoc} */
@Override
protected double getDomainLowerBound(double p) {
double ret;
@@ -202,14 +189,7 @@ public class NormalDistributionImpl exte
return ret;
}
- /**
- * Access the domain value upper bound, based on {@code p}, used to
- * bracket a CDF root. This method is used by
- * {@link #inverseCumulativeProbability(double)} to find critical values.
- *
- * @param p Desired probability for the critical value.
- * @return the domain value upper bound, i.e. {@code P(X < 'upper bound') > p}.
- */
+ /** {@inheritDoc} */
@Override
protected double getDomainUpperBound(double p) {
double ret;
@@ -223,14 +203,7 @@ public class NormalDistributionImpl exte
return ret;
}
- /**
- * Access the initial domain value, based on {@code p}, used to
- * bracket a CDF root. This method is used by
- * {@link #inverseCumulativeProbability(double)} to find critical values.
- *
- * @param p Desired probability for the critical value.
- * @return the initial domain value.
- */
+ /** {@inheritDoc} */
@Override
protected double getInitialDomain(double p) {
double ret;
@@ -252,7 +225,8 @@ public class NormalDistributionImpl exte
* The lower bound of the support is always negative infinity
* no matter the parameters.
*
- * @return lower bound of the support (always Double.NEGATIVE_INFINITY)
+ * @return lower bound of the support (always
+ * {@code Double.NEGATIVE_INFINITY})
*/
@Override
public double getSupportLowerBound() {
@@ -265,7 +239,8 @@ public class NormalDistributionImpl exte
* The upper bound of the support is always positive infinity
* no matter the parameters.
*
- * @return upper bound of the support (always Double.POSITIVE_INFINITY)
+ * @return upper bound of the support (always
+ * {@code Double.POSITIVE_INFINITY})
*/
@Override
public double getSupportUpperBound() {
@@ -275,9 +250,7 @@ public class NormalDistributionImpl exte
/**
* {@inheritDoc}
*
- * For mean parameter <code>mu</code>, the mean is <code>mu</code>
- *
- * @return {@inheritDoc}
+ * For mean parameter {@code mu}, the mean is {@code mu}.
*/
@Override
protected double calculateNumericalMean() {
@@ -287,10 +260,7 @@ public class NormalDistributionImpl exte
/**
* {@inheritDoc}
*
- * For standard deviation parameter <code>s</code>,
- * the variance is <code>s^2</code>
- *
- * @return {@inheritDoc}
+ * For standard deviation parameter {@code s}, the variance is {@code s^2}.
*/
@Override
protected double calculateNumericalVariance() {
@@ -298,17 +268,13 @@ public class NormalDistributionImpl exte
return s * s;
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public boolean isSupportLowerBoundInclusive() {
return false;
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
public boolean isSupportUpperBoundInclusive() {
return false;
Copied: commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/PascalDistribution.java (from r1206052, commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/PascalDistributionImpl.java)
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/PascalDistribution.java?p2=commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/PascalDistribution.java&p1=commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/PascalDistributionImpl.java&r1=1206052&r2=1206421&rev=1206421&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/PascalDistributionImpl.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/PascalDistribution.java Sat Nov 26 10:17:49 2011
@@ -26,12 +26,28 @@ import org.apache.commons.math.util.Arit
import org.apache.commons.math.util.FastMath;
/**
- * The default implementation of {@link PascalDistribution}.
+ * <p>
+ * Implementation of the Pascal distribution. The Pascal distribution is a
+ * special case of the Negative Binomial distribution where the number of
+ * successes parameter is an integer.
+ * </p>
+ * <p>
+ * There are various ways to express the probability mass and distribution
+ * functions for the Pascal distribution. The convention employed by the
+ * library is to express these functions in terms of the number of failures in
+ * a Bernoulli experiment
+ * (see <a href="http://en.wikipedia.org/wiki/Negative_binomial_distribution#Waiting_time_in_a_Bernoulli_process">Waiting Time in a Bernoulli Process</a>).
+ * </p>
+ *
+ * @see <a href="http://en.wikipedia.org/wiki/Negative_binomial_distribution">
+ * Negative binomial distribution (Wikipedia)</a>
+ * @see <a href="http://mathworld.wolfram.com/NegativeBinomialDistribution.html">
+ * Negative binomial distribution (MathWorld)</a>
* @version $Id$
- * @since 1.2
+ * @since 1.2 (changed to concrete class in 3.0)
*/
-public class PascalDistributionImpl extends AbstractIntegerDistribution
- implements PascalDistribution, Serializable {
+public class PascalDistribution extends AbstractIntegerDistribution
+ implements Serializable {
/** Serializable version identifier. */
private static final long serialVersionUID = 6751309484392813623L;
/** The number of successes. */
@@ -45,8 +61,12 @@ public class PascalDistributionImpl exte
*
* @param r Number of successes.
* @param p Probability of success.
+ * @throws NotPositiveException if the number of successes is not positive
+ * @throws OutOfRangeException if the probability of success is not in the
+ * range [0, 1]
*/
- public PascalDistributionImpl(int r, double p) {
+ public PascalDistribution(int r, double p)
+ throws NotPositiveException, OutOfRangeException {
if (r < 0) {
throw new NotPositiveException(LocalizedFormats.NUMBER_OF_SUCCESSES,
r);
@@ -60,51 +80,37 @@ public class PascalDistributionImpl exte
}
/**
- * {@inheritDoc}
+ * Access the number of successes for this distribution.
+ *
+ * @return the number of successes.
*/
public int getNumberOfSuccesses() {
return numberOfSuccesses;
}
/**
- * {@inheritDoc}
+ * Access the probability of success for this distribution.
+ *
+ * @return the probability of success.
*/
public double getProbabilityOfSuccess() {
return probabilityOfSuccess;
}
- /**
- * Access the domain value lower bound, based on {@code p}, used to
- * bracket a PDF root.
- *
- * @param p Desired probability for the critical value.
- * @return the domain value lower bound, i.e. {@code P(X < 'lower bound') < p}.
- */
+ /** {@inheritDoc} */
@Override
protected int getDomainLowerBound(double p) {
return -1;
}
- /**
- * Access the domain value upper bound, based on {@code p}, used to
- * bracket a PDF root.
- *
- * @param p Desired probability for the critical value
- * @return the domain value upper bound, i.e. {@code P(X < 'upper bound') > p}.
- */
+ /** {@inheritDoc} */
@Override
protected int getDomainUpperBound(double p) {
// use MAX - 1 because MAX causes loop
return Integer.MAX_VALUE - 1;
}
- /**
- * For this distribution, {@code X}, this method returns {@code P(X <= x)}.
- *
- * @param x Value at which the PDF is evaluated.
- * @return PDF for this distribution.
- * due to convergence or other numerical errors.
- */
+ /** {@inheritDoc} */
@Override
public double cumulativeProbability(int x) {
double ret;
@@ -117,12 +123,7 @@ public class PascalDistributionImpl exte
return ret;
}
- /**
- * For this distribution, {@code X}, this method returns {@code P(X = x)}.
- *
- * @param x Value at which the PMF is evaluated.
- * @return PMF for this distribution.
- */
+ /** {@inheritDoc} */
public double probability(int x) {
double ret;
if (x < 0) {
@@ -137,13 +138,10 @@ public class PascalDistributionImpl exte
}
/**
- * For this distribution, {@code X}, this method returns the largest
- * {@code x}, such that {@code P(X <= x) <= p}.
- * It will return -1 when p = 0 and {@code Integer.MAX_VALUE} when p = 1.
- *
- * @param p Desired probability.
- * @return the largest {@code x} such that {@code P(X <= x) <= p}.
- * @throws OutOfRangeException if {@code p < 0} or {@code p > 1}.
+ * {@inheritDoc}
+ *
+ * Returns {@code -1} when {@code p == 0} and
+ * {@code Integer.MAX_VALUE} when {@code p == 1}.
*/
@Override
public int inverseCumulativeProbability(final double p) {
@@ -176,12 +174,13 @@ public class PascalDistributionImpl exte
/**
* {@inheritDoc}
*
- * The upper bound of the support is always positive infinity
- * no matter the parameters. Positive infinity is symbolised
- * by <code>Integer.MAX_VALUE</code> together with
- * {@link #isSupportUpperBoundInclusive()} being <code>false</code>
+ * The upper bound of the support is always positive infinity no matter the
+ * parameters. Positive infinity is symbolised by {@code Integer.MAX_VALUE}
+ * together with {@link #isSupportUpperBoundInclusive()} being
+ * {@code false}.
*
- * @return upper bound of the support (always <code>Integer.MAX_VALUE</code> for positive infinity)
+ * @return upper bound of the support (always {@code Integer.MAX_VALUE}
+ * for positive infinity)
*/
@Override
public int getSupportUpperBound() {
@@ -191,38 +190,36 @@ public class PascalDistributionImpl exte
/**
* {@inheritDoc}
*
- * For number of successes <code>r</code> and
- * probability of success <code>p</code>, the mean is
- * <code>( r * p ) / ( 1 - p )</code>
- *
- * @return {@inheritDoc}
+ * For number of successes {@code r} and probability of success {@code p},
+ * the mean is {@code (r * p) / (1 - p)}.
*/
@Override
protected double calculateNumericalMean() {
final double p = getProbabilityOfSuccess();
final double r = getNumberOfSuccesses();
- return ( r * p ) / ( 1 - p );
+ return (r * p) / (1 - p);
}
/**
* {@inheritDoc}
*
- * For number of successes <code>r</code> and
- * probability of success <code>p</code>, the mean is
- * <code>( r * p ) / ( 1 - p )^2</code>
- *
- * @return {@inheritDoc}
+ * For number of successes {@code r} and probability of success {@code p},
+ * the mean is {@code (r * p) / (1 - p)^2}.
*/
@Override
protected double calculateNumericalVariance() {
final double p = getProbabilityOfSuccess();
final double r = getNumberOfSuccesses();
final double pInv = 1 - p;
- return ( r * p ) / (pInv * pInv);
+ return (r * p) / (pInv * pInv);
}
/**
* {@inheritDoc}
+ *
+ * Always returns {@code false}.
+ *
+ * @see {@link PascalDistribution#getSupportUpperBound() getSupportUpperBound()}
*/
@Override
public boolean isSupportUpperBoundInclusive() {
Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/PoissonDistributionImpl.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/PoissonDistributionImpl.java?rev=1206421&r1=1206420&r2=1206421&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/PoissonDistributionImpl.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/PoissonDistributionImpl.java Sat Nov 26 10:17:49 2011
@@ -85,7 +85,7 @@ public class PoissonDistributionImpl ext
throw new NotStrictlyPositiveException(LocalizedFormats.MEAN, p);
}
mean = p;
- normal = new NormalDistributionImpl(p, FastMath.sqrt(p));
+ normal = new NormalDistribution(p, FastMath.sqrt(p));
this.epsilon = epsilon;
this.maxIterations = maxIterations;
}
Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/random/RandomDataImpl.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/random/RandomDataImpl.java?rev=1206421&r1=1206420&r2=1206421&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/random/RandomDataImpl.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/random/RandomDataImpl.java Sat Nov 26 10:17:49 2011
@@ -32,7 +32,7 @@ import org.apache.commons.math.distribut
import org.apache.commons.math.distribution.FDistribution;
import org.apache.commons.math.distribution.HypergeometricDistribution;
import org.apache.commons.math.distribution.IntegerDistribution;
-import org.apache.commons.math.distribution.PascalDistributionImpl;
+import org.apache.commons.math.distribution.PascalDistribution;
import org.apache.commons.math.distribution.TDistributionImpl;
import org.apache.commons.math.distribution.WeibullDistributionImpl;
import org.apache.commons.math.distribution.ZipfDistributionImpl;
@@ -770,7 +770,7 @@ public class RandomDataImpl implements R
}
/**
- * Generates a random value from the {@link PascalDistributionImpl Pascal Distribution}.
+ * Generates a random value from the {@link PascalDistribution Pascal Distribution}.
* This implementation uses {@link #nextInversionDeviate(IntegerDistribution) inversion}
* to generate random values.
*
@@ -780,7 +780,7 @@ public class RandomDataImpl implements R
* @since 2.2
*/
public int nextPascal(int r, double p) {
- return nextInversionDeviate(new PascalDistributionImpl(r, p));
+ return nextInversionDeviate(new PascalDistribution(r, p));
}
/**
Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/stat/inference/MannWhitneyUTestImpl.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/stat/inference/MannWhitneyUTestImpl.java?rev=1206421&r1=1206420&r2=1206421&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/stat/inference/MannWhitneyUTestImpl.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/stat/inference/MannWhitneyUTestImpl.java Sat Nov 26 10:17:49 2011
@@ -17,7 +17,7 @@
package org.apache.commons.math.stat.inference;
import org.apache.commons.math.MathException;
-import org.apache.commons.math.distribution.NormalDistributionImpl;
+import org.apache.commons.math.distribution.NormalDistribution;
import org.apache.commons.math.stat.ranking.NaNStrategy;
import org.apache.commons.math.stat.ranking.NaturalRanking;
import org.apache.commons.math.stat.ranking.TiesStrategy;
@@ -159,7 +159,7 @@ public class MannWhitneyUTestImpl implem
final double z = (Umin - EU) / FastMath.sqrt(VarU);
- final NormalDistributionImpl standardNormal = new NormalDistributionImpl(
+ final NormalDistribution standardNormal = new NormalDistribution(
0, 1);
return 2 * standardNormal.cumulativeProbability(z);
Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/stat/inference/WilcoxonSignedRankTestImpl.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/stat/inference/WilcoxonSignedRankTestImpl.java?rev=1206421&r1=1206420&r2=1206421&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/stat/inference/WilcoxonSignedRankTestImpl.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/stat/inference/WilcoxonSignedRankTestImpl.java Sat Nov 26 10:17:49 2011
@@ -17,7 +17,7 @@
package org.apache.commons.math.stat.inference;
import org.apache.commons.math.MathException;
-import org.apache.commons.math.distribution.NormalDistributionImpl;
+import org.apache.commons.math.distribution.NormalDistribution;
import org.apache.commons.math.stat.ranking.NaNStrategy;
import org.apache.commons.math.stat.ranking.NaturalRanking;
import org.apache.commons.math.stat.ranking.TiesStrategy;
@@ -228,7 +228,7 @@ public class WilcoxonSignedRankTestImpl
// - 0.5 is a continuity correction
final double z = (Wmin - ES - 0.5) / FastMath.sqrt(VarS);
- final NormalDistributionImpl standardNormal = new NormalDistributionImpl(0, 1);
+ final NormalDistribution standardNormal = new NormalDistribution(0, 1);
return 2*standardNormal.cumulativeProbability(z);
}
Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/distribution/CauchyDistributionTest.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/distribution/CauchyDistributionTest.java?rev=1206421&r1=1206420&r2=1206421&view=diff
==============================================================================
--- commons/proper/math/trunk/src/test/java/org/apache/commons/math/distribution/CauchyDistributionTest.java (original)
+++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/distribution/CauchyDistributionTest.java Sat Nov 26 10:17:49 2011
@@ -31,7 +31,7 @@ import org.junit.Test;
public class CauchyDistributionTest extends ContinuousDistributionAbstractTest {
// --------------------- Override tolerance --------------
- protected double defaultTolerance = NormalDistributionImpl.DEFAULT_INVERSE_ABSOLUTE_ACCURACY;
+ protected double defaultTolerance = NormalDistribution.DEFAULT_INVERSE_ABSOLUTE_ACCURACY;
@Override
public void setUp() throws Exception {
super.setUp();
Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/distribution/NormalDistributionTest.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/distribution/NormalDistributionTest.java?rev=1206421&r1=1206420&r2=1206421&view=diff
==============================================================================
--- commons/proper/math/trunk/src/test/java/org/apache/commons/math/distribution/NormalDistributionTest.java (original)
+++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/distribution/NormalDistributionTest.java Sat Nov 26 10:17:49 2011
@@ -35,7 +35,7 @@ public class NormalDistributionTest exte
/** Creates the default continuous distribution instance to use in tests. */
@Override
public NormalDistribution makeDistribution() {
- return new NormalDistributionImpl(2.1, 1.4);
+ return new NormalDistribution(2.1, 1.4);
}
/** Creates the default cumulative probability distribution test input values */
@@ -61,7 +61,7 @@ public class NormalDistributionTest exte
}
// --------------------- Override tolerance --------------
- protected double defaultTolerance = NormalDistributionImpl.DEFAULT_INVERSE_ABSOLUTE_ACCURACY;
+ protected double defaultTolerance = NormalDistribution.DEFAULT_INVERSE_ABSOLUTE_ACCURACY;
@Override
public void setUp() throws Exception {
super.setUp();
@@ -90,13 +90,13 @@ public class NormalDistributionTest exte
verifyQuantiles();
verifyDensities();
- setDistribution(new NormalDistributionImpl(0, 1));
+ setDistribution(new NormalDistribution(0, 1));
setDensityTestValues(new double[] {0.0539909665132, 0.241970724519, 0.398942280401, 0.241970724519, 0.0539909665132,
0.00443184841194, 0.000133830225765, 1.48671951473e-06});
verifyQuantiles();
verifyDensities();
- setDistribution(new NormalDistributionImpl(0, 0.1));
+ setDistribution(new NormalDistribution(0, 0.1));
setDensityTestValues(new double[] {0.539909665132, 2.41970724519, 3.98942280401, 2.41970724519,
0.539909665132, 0.0443184841194, 0.00133830225765, 1.48671951473e-05});
verifyQuantiles();
@@ -125,7 +125,7 @@ public class NormalDistributionTest exte
@Test(expected=NotStrictlyPositiveException.class)
public void testPreconditions() {
- new NormalDistributionImpl(1, 0);
+ new NormalDistribution(1, 0);
}
@Test
@@ -138,7 +138,7 @@ public class NormalDistributionTest exte
}
private void checkDensity(double mean, double sd, double[] x, double[] expected) {
- NormalDistribution d = new NormalDistributionImpl(mean, sd);
+ NormalDistribution d = new NormalDistribution(mean, sd);
for (int i = 0; i < x.length; i++) {
Assert.assertEquals(expected[i], d.density(x[i]), 1e-9);
}
@@ -150,11 +150,11 @@ public class NormalDistributionTest exte
*/
@Test
public void testExtremeValues() throws Exception {
- NormalDistribution distribution = new NormalDistributionImpl(0, 1);
+ NormalDistribution distribution = new NormalDistribution(0, 1);
for (int i = 0; i < 100; i++) { // make sure no convergence exception
double lowerTail = distribution.cumulativeProbability(-i);
double upperTail = distribution.cumulativeProbability(i);
- if (i < 9) { // make sure not top-coded
+ if (i < 9) { // make sure not top-coded
// For i = 10, due to bad tail precision in erf (MATH-364), 1 is returned
// TODO: once MATH-364 is resolved, replace 9 with 30
Assert.assertTrue(lowerTail > 0.0d);
@@ -165,17 +165,17 @@ public class NormalDistributionTest exte
Assert.assertTrue(upperTail > 0.99999);
}
}
-
+
Assert.assertEquals(distribution.cumulativeProbability(Double.MAX_VALUE), 1, 0);
Assert.assertEquals(distribution.cumulativeProbability(-Double.MAX_VALUE), 0, 0);
Assert.assertEquals(distribution.cumulativeProbability(Double.POSITIVE_INFINITY), 1, 0);
Assert.assertEquals(distribution.cumulativeProbability(Double.NEGATIVE_INFINITY), 0, 0);
-
+
}
@Test
public void testMath280() {
- NormalDistribution normal = new NormalDistributionImpl(0,1);
+ NormalDistribution normal = new NormalDistribution(0,1);
double result = normal.inverseCumulativeProbability(0.9986501019683698);
Assert.assertEquals(3.0, result, defaultTolerance);
result = normal.inverseCumulativeProbability(0.841344746068543);
@@ -190,16 +190,16 @@ public class NormalDistributionTest exte
public void testMoments() {
final double tol = 1e-9;
NormalDistribution dist;
-
- dist = new NormalDistributionImpl(0, 1);
+
+ dist = new NormalDistribution(0, 1);
Assert.assertEquals(dist.getNumericalMean(), 0, tol);
- Assert.assertEquals(dist.getNumericalVariance(), 1, tol);
-
- dist = new NormalDistributionImpl(2.2, 1.4);
+ Assert.assertEquals(dist.getNumericalVariance(), 1, tol);
+
+ dist = new NormalDistribution(2.2, 1.4);
Assert.assertEquals(dist.getNumericalMean(), 2.2, tol);
Assert.assertEquals(dist.getNumericalVariance(), 1.4 * 1.4, tol);
-
- dist = new NormalDistributionImpl(-2000.9, 10.4);
+
+ dist = new NormalDistribution(-2000.9, 10.4);
Assert.assertEquals(dist.getNumericalMean(), -2000.9, tol);
Assert.assertEquals(dist.getNumericalVariance(), 10.4 * 10.4, tol);
}
Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/distribution/PascalDistributionTest.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/distribution/PascalDistributionTest.java?rev=1206421&r1=1206420&r2=1206421&view=diff
==============================================================================
--- commons/proper/math/trunk/src/test/java/org/apache/commons/math/distribution/PascalDistributionTest.java (original)
+++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/distribution/PascalDistributionTest.java Sat Nov 26 10:17:49 2011
@@ -29,7 +29,7 @@ import org.junit.Test;
public class PascalDistributionTest extends IntegerDistributionAbstractTest {
// --------------------- Override tolerance --------------
- protected double defaultTolerance = NormalDistributionImpl.DEFAULT_INVERSE_ABSOLUTE_ACCURACY;
+ protected double defaultTolerance = NormalDistribution.DEFAULT_INVERSE_ABSOLUTE_ACCURACY;
@Override
public void setUp() {
super.setUp();
@@ -41,7 +41,7 @@ public class PascalDistributionTest exte
/** Creates the default discrete distribution instance to use in tests. */
@Override
public IntegerDistribution makeDistribution() {
- return new PascalDistributionImpl(10,0.70);
+ return new PascalDistribution(10,0.70);
}
/** Creates the default probability density test input values */
@@ -90,7 +90,7 @@ public class PascalDistributionTest exte
/** Test degenerate case p = 0 */
@Test
public void testDegenerate0() throws Exception {
- setDistribution(new PascalDistributionImpl(5,0.0d));
+ setDistribution(new PascalDistribution(5,0.0d));
setCumulativeTestPoints(new int[] {-1, 0, 1, 5, 10 });
setCumulativeTestValues(new double[] {0d, 0d, 0d, 0d, 0d});
setDensityTestPoints(new int[] {-1, 0, 1, 10, 11});
@@ -105,7 +105,7 @@ public class PascalDistributionTest exte
/** Test degenerate case p = 1 */
@Test
public void testDegenerate1() throws Exception {
- setDistribution(new PascalDistributionImpl(5,1.0d));
+ setDistribution(new PascalDistribution(5,1.0d));
setCumulativeTestPoints(new int[] {-1, 0, 1, 2, 5, 10 });
setCumulativeTestValues(new double[] {0d, 1d, 1d, 1d, 1d, 1d});
setDensityTestPoints(new int[] {-1, 0, 1, 2, 5, 10});
@@ -121,12 +121,12 @@ public class PascalDistributionTest exte
public void testMoments() {
final double tol = 1e-9;
PascalDistribution dist;
-
- dist = new PascalDistributionImpl(10, 0.5);
+
+ dist = new PascalDistribution(10, 0.5);
Assert.assertEquals(dist.getNumericalMean(), ( 10d * 0.5d ) / 0.5d, tol);
- Assert.assertEquals(dist.getNumericalVariance(), ( 10d * 0.5d ) / (0.5d * 0.5d), tol);
-
- dist = new PascalDistributionImpl(25, 0.3);
+ Assert.assertEquals(dist.getNumericalVariance(), ( 10d * 0.5d ) / (0.5d * 0.5d), tol);
+
+ dist = new PascalDistribution(25, 0.3);
Assert.assertEquals(dist.getNumericalMean(), ( 25d * 0.3d ) / 0.7d, tol);
Assert.assertEquals(dist.getNumericalVariance(), ( 25d * 0.3d ) / (0.7d * 0.7d), tol);
}
Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/random/RandomDataTest.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/random/RandomDataTest.java?rev=1206421&r1=1206420&r2=1206421&view=diff
==============================================================================
--- commons/proper/math/trunk/src/test/java/org/apache/commons/math/random/RandomDataTest.java (original)
+++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/random/RandomDataTest.java Sat Nov 26 10:17:49 2011
@@ -35,7 +35,7 @@ import org.apache.commons.math.distribut
import org.apache.commons.math.distribution.GammaDistribution;
import org.apache.commons.math.distribution.HypergeometricDistribution;
import org.apache.commons.math.distribution.HypergeometricDistributionTest;
-import org.apache.commons.math.distribution.PascalDistributionImpl;
+import org.apache.commons.math.distribution.PascalDistribution;
import org.apache.commons.math.distribution.PascalDistributionTest;
import org.apache.commons.math.distribution.PoissonDistribution;
import org.apache.commons.math.distribution.PoissonDistributionImpl;
@@ -1015,7 +1015,7 @@ public class RandomDataTest {
double[] densityValues = testInstance.makeDensityTestValues();
int sampleSize = 1000;
int length = TestUtils.eliminateZeroMassPoints(densityPoints, densityValues);
- PascalDistributionImpl distribution = (PascalDistributionImpl) testInstance.makeDistribution();
+ PascalDistribution distribution = (PascalDistribution) testInstance.makeDistribution();
double[] expectedCounts = new double[length];
long[] observedCounts = new long[length];
for (int i = 0; i < length; i++) {