commons-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From er...@apache.org
Subject svn commit: r1001700 - in /commons/proper/math/trunk/src: main/java/org/apache/commons/math/distribution/ test/java/org/apache/commons/math/distribution/
Date Mon, 27 Sep 2010 12:18:23 GMT
Author: erans
Date: Mon Sep 27 12:18:22 2010
New Revision: 1001700

URL: http://svn.apache.org/viewvc?rev=1001700&view=rev
Log:
Removed deprecated code.

Modified:
    commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/ExponentialDistribution.java
    commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/ExponentialDistributionImpl.java
    commons/proper/math/trunk/src/test/java/org/apache/commons/math/distribution/ExponentialDistributionTest.java

Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/ExponentialDistribution.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/ExponentialDistribution.java?rev=1001700&r1=1001699&r2=1001700&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/ExponentialDistribution.java
(original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/ExponentialDistribution.java
Mon Sep 27 12:18:22 2010
@@ -29,25 +29,19 @@ package org.apache.commons.math.distribu
  *
  * @version $Revision$ $Date$
  */
-public interface ExponentialDistribution extends ContinuousDistribution, HasDensity<Double>
{
-    /**
-     * Modify the mean.
-     * @param mean the new mean.
-     * @deprecated as of v2.1
-     */
-    @Deprecated
-    void setMean(double mean);
-
+public interface ExponentialDistribution extends ContinuousDistribution {
     /**
      * Access the mean.
+     *
      * @return the mean.
      */
     double getMean();
 
     /**
      * Return the probability density for a particular point.
-     * @param x  The point at which the density should be computed.
-     * @return  The pdf at point x.
+     *
+     * @param x Point at which the density should be computed.
+     * @return the pdf at point {@code x}.
      */
-    double density(Double x);
+    double density(double x);
 }

Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/ExponentialDistributionImpl.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/ExponentialDistributionImpl.java?rev=1001700&r1=1001699&r2=1001700&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/ExponentialDistributionImpl.java
(original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/ExponentialDistributionImpl.java
Mon Sep 27 12:18:22 2010
@@ -19,7 +19,8 @@ package org.apache.commons.math.distribu
 import java.io.Serializable;
 
 import org.apache.commons.math.MathException;
-import org.apache.commons.math.MathRuntimeException;
+import org.apache.commons.math.exception.NotStrictlyPositiveException;
+import org.apache.commons.math.exception.OutOfRangeException;
 import org.apache.commons.math.exception.util.LocalizedFormats;
 import org.apache.commons.math.util.FastMath;
 
@@ -30,19 +31,15 @@ import org.apache.commons.math.util.Fast
  */
 public class ExponentialDistributionImpl extends AbstractContinuousDistribution
     implements ExponentialDistribution, Serializable {
-
     /**
      * Default inverse cumulative probability accuracy
      * @since 2.1
      */
     public static final double DEFAULT_INVERSE_ABSOLUTE_ACCURACY = 1e-9;
-
     /** Serializable version identifier */
     private static final long serialVersionUID = 2401296428283614780L;
-
     /** The mean of this distribution. */
     private double mean;
-
     /** Inverse cumulative probability accuracy */
     private final double solverAbsoluteAccuracy;
 
@@ -57,41 +54,23 @@ public class ExponentialDistributionImpl
     /**
      * Create a exponential distribution with the given mean.
      * @param mean mean of this distribution.
-     * @param inverseCumAccuracy the maximum absolute error in inverse cumulative probability
estimates
-     * (defaults to {@link #DEFAULT_INVERSE_ABSOLUTE_ACCURACY})
+     * @param inverseCumAccuracy the maximum absolute error in inverse
+     * cumulative probability estimates (defaults to
+     * {@link #DEFAULT_INVERSE_ABSOLUTE_ACCURACY}).
+     * @throws NotStrictlyPositiveException if {@code mean <= 0}.
      * @since 2.1
      */
     public ExponentialDistributionImpl(double mean, double inverseCumAccuracy) {
-        super();
-        setMeanInternal(mean);
-        solverAbsoluteAccuracy = inverseCumAccuracy;
-    }
-
-    /**
-     * Modify the mean.
-     * @param mean the new mean.
-     * @throws IllegalArgumentException if <code>mean</code> is not positive.
-     * @deprecated as of 2.1 (class will become immutable in 3.0)
-     */
-    @Deprecated
-    public void setMean(double mean) {
-        setMeanInternal(mean);
-    }
-    /**
-     * Modify the mean.
-     * @param newMean the new mean.
-     * @throws IllegalArgumentException if <code>newMean</code> is not positive.
-     */
-    private void setMeanInternal(double newMean) {
-        if (newMean <= 0.0) {
-            throw MathRuntimeException.createIllegalArgumentException(
-                  LocalizedFormats.NOT_POSITIVE_MEAN, newMean);
+        if (mean <= 0) {
+            throw new NotStrictlyPositiveException(LocalizedFormats.MEAN, mean);
         }
-        this.mean = newMean;
+        this.mean = mean;
+        solverAbsoluteAccuracy = inverseCumAccuracy;
     }
 
     /**
      * Access the mean.
+     *
      * @return the mean.
      */
     public double getMean() {
@@ -101,19 +80,8 @@ public class ExponentialDistributionImpl
     /**
      * Return the probability density for a particular point.
      *
-     * @param x The point at which the density should be computed.
-     * @return The pdf at point x.
-     * @deprecated - use density(double)
-     */
-    public double density(Double x) {
-        return density(x.doubleValue());
-    }
-
-    /**
-     * Return the probability density for a particular point.
-     *
-     * @param x The point at which the density should be computed.
-     * @return The pdf at point x.
+     * @param x Point at which the density should be computed.
+     * @return the pdf at point {@code x}.
      * @since 2.1
      */
     @Override
@@ -135,11 +103,11 @@ public class ExponentialDistributionImpl
      * </ul>
      *
      * @param x the value at which the CDF is evaluated.
-     * @return CDF for this distribution.
+     * @return the CDF for this distribution.
      * @throws MathException if the cumulative probability can not be
-     *            computed due to convergence or other numerical errors.
+     * computed due to convergence or other numerical errors.
      */
-    public double cumulativeProbability(double x) throws MathException{
+    public double cumulativeProbability(double x) throws MathException {
         double ret;
         if (x <= 0.0) {
             ret = 0.0;
@@ -151,23 +119,21 @@ public class ExponentialDistributionImpl
 
     /**
      * For this distribution, X, this method returns the critical point x, such
-     * that P(X &lt; x) = <code>p</code>.
-     * <p>
-     * Returns 0 for p=0 and <code>Double.POSITIVE_INFINITY</code> for p=1.</p>
+     * that {@code P(X < x) = p}.
+     * Returns 0 when p = 0 and {@code Double.POSITIVE_INFINITY} when p = 1.
      *
      * @param p the desired probability
-     * @return x, such that P(X &lt; x) = <code>p</code>
+     * @return {@code x}, such that {@code P(X < x) = p}.
      * @throws MathException if the inverse cumulative probability can not be
-     *            computed due to convergence or other numerical errors.
-     * @throws IllegalArgumentException if p < 0 or p > 1.
+     * computed due to convergence or other numerical errors.
+     * @throws OutOfRangeException if {@code p < 0} or {@code p > 1}.
      */
     @Override
     public double inverseCumulativeProbability(double p) throws MathException {
         double ret;
 
         if (p < 0.0 || p > 1.0) {
-            throw MathRuntimeException.createIllegalArgumentException(
-                  LocalizedFormats.OUT_OF_RANGE_SIMPLE, p, 0.0, 1.0);
+            throw new OutOfRangeException(p, 0.0, 1.0);
         } else if (p == 1.0) {
             ret = Double.POSITIVE_INFINITY;
         } else {
@@ -183,11 +149,11 @@ public class ExponentialDistributionImpl
      * <p><strong>Algorithm Description</strong>: Uses the <a
      * href="http://www.jesus.ox.ac.uk/~clifford/a5/chap1/node5.html"> Inversion
      * Method</a> to generate exponentially distributed random values from
-     * uniform deviates. </p>
+     * uniform deviates.</p>
      *
-     * @return random value
+     * @return a random value.
+     * @throws MathException if an error occurs generating the random value.
      * @since 2.2
-     * @throws MathException if an error occurs generating the random value
      */
     @Override
     public double sample() throws MathException {
@@ -195,12 +161,11 @@ public class ExponentialDistributionImpl
     }
 
     /**
-     * Access the domain value lower bound, based on <code>p</code>, used to
+     * Access the domain value lower bound, based on {@code p}, used to
      * bracket a CDF root.
      *
-     * @param p the desired probability for the critical value
-     * @return domain value lower bound, i.e.
-     *         P(X &lt; <i>lower bound</i>) &lt; <code>p</code>
+     * @param p Desired probability for the critical value.
+     * @return the domain value lower bound, i.e. {@code P(X < 'lower bound') < p}.
      */
     @Override
     protected double getDomainLowerBound(double p) {
@@ -211,16 +176,15 @@ public class ExponentialDistributionImpl
      * Access the domain value upper bound, based on <code>p</code>, used to
      * bracket a CDF root.
      *
-     * @param p the desired probability for the critical value
-     * @return domain value upper bound, i.e.
-     *         P(X &lt; <i>upper bound</i>) &gt; <code>p</code>
+     * @param p Desired probability for the critical value.
+     * @return the domain value upper bound, i.e. {@code P(X < 'upper bound') > p}.
      */
     @Override
     protected double getDomainUpperBound(double p) {
         // NOTE: exponential is skewed to the left
         // NOTE: therefore, P(X < &mu;) > .5
 
-        if (p < .5) {
+        if (p < 0.5) {
             // use mean
             return mean;
         } else {
@@ -230,11 +194,11 @@ public class ExponentialDistributionImpl
     }
 
     /**
-     * Access the initial domain value, based on <code>p</code>, used to
+     * Access the initial domain value, based on {@code p}, used to
      * bracket a CDF root.
      *
-     * @param p the desired probability for the critical value
-     * @return initial domain value
+     * @param p Desired probability for the critical value.
+     * @return the initial domain value.
      */
     @Override
     protected double getInitialDomain(double p) {
@@ -242,9 +206,9 @@ public class ExponentialDistributionImpl
         // TODO: what should really happen here is not derive from AbstractContinuousDistribution
         // TODO: because the inverse cumulative distribution is simple.
         // Exponential is skewed to the left, therefore, P(X < &mu;) > .5
-        if (p < .5) {
+        if (p < 0.5) {
             // use 1/2 mean
-            return mean * .5;
+            return mean * 0.5;
         } else {
             // use mean
             return mean;
@@ -255,7 +219,7 @@ public class ExponentialDistributionImpl
      * Return the absolute accuracy setting of the solver used to estimate
      * inverse cumulative probabilities.
      *
-     * @return the solver absolute accuracy
+     * @return the solver absolute accuracy.
      * @since 2.1
      */
     @Override

Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/distribution/ExponentialDistributionTest.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/distribution/ExponentialDistributionTest.java?rev=1001700&r1=1001699&r2=1001700&view=diff
==============================================================================
--- commons/proper/math/trunk/src/test/java/org/apache/commons/math/distribution/ExponentialDistributionTest.java
(original)
+++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/distribution/ExponentialDistributionTest.java
Mon Sep 27 12:18:22 2010
@@ -17,6 +17,7 @@
 package org.apache.commons.math.distribution;
 
 import org.apache.commons.math.util.FastMath;
+import org.apache.commons.math.exception.NotStrictlyPositiveException;
 
 /**
  * Test cases for ExponentialDistribution.
@@ -111,14 +112,13 @@ public class ExponentialDistributionTest
     public void testMeanAccessors() {
         ExponentialDistribution distribution = (ExponentialDistribution) getDistribution();
         assertEquals(5d, distribution.getMean(), Double.MIN_VALUE);
-        distribution.setMean(2d);
-        assertEquals(2d, distribution.getMean(), Double.MIN_VALUE);
+    }
+
+    public void testPreconditions() {
         try {
-            distribution.setMean(0);
-            fail("Expecting IllegalArgumentException for 0 mean");
-        } catch (IllegalArgumentException ex) {
-            // expected
+            ExponentialDistribution distribution = new ExponentialDistributionImpl(0);
+        } catch (NotStrictlyPositiveException e) {
+            // Expected.
         }
     }
-
 }



Mime
View raw message