You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by er...@apache.org on 2010/09/27 15:43:59 UTC

svn commit: r1001736 - in /commons/proper/math/trunk/src: main/java/org/apache/commons/math/distribution/ main/java/org/apache/commons/math/exception/util/ main/resources/META-INF/localization/ test/java/org/apache/commons/math/distribution/

Author: erans
Date: Mon Sep 27 13:43:59 2010
New Revision: 1001736

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

Modified:
    commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/BetaDistributionImpl.java
    commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/ChiSquaredDistributionImpl.java
    commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/ExponentialDistributionImpl.java
    commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/GammaDistribution.java
    commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/GammaDistributionImpl.java
    commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/util/LocalizedFormats.java
    commons/proper/math/trunk/src/main/resources/META-INF/localization/LocalizedFormats_fr.properties
    commons/proper/math/trunk/src/test/java/org/apache/commons/math/distribution/GammaDistributionTest.java

Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/BetaDistributionImpl.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/BetaDistributionImpl.java?rev=1001736&r1=1001735&r2=1001736&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/BetaDistributionImpl.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/BetaDistributionImpl.java Mon Sep 27 13:43:59 2010
@@ -89,11 +89,13 @@ public class BetaDistributionImpl
     }
 
     /** {@inheritDoc} */
+    @Override
     public double getAlpha() {
         return alpha;
     }
 
     /** {@inheritDoc} */
+    @Override
     public double getBeta() {
         return beta;
     }
@@ -108,12 +110,9 @@ public class BetaDistributionImpl
     }
 
     /**
-     * Return the probability density for a particular point.
-     *
-     * @param x Point at which the density should be computed.
-     * @return the pdf at point x.
-     * @since 2.1
+     * {@inheritDoc}
      */
+    @Override
     public double density(double x) {
         recomputeZ();
         if (x < 0 || x > 1) {

Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/ChiSquaredDistributionImpl.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/ChiSquaredDistributionImpl.java?rev=1001736&r1=1001735&r2=1001736&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/ChiSquaredDistributionImpl.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/ChiSquaredDistributionImpl.java Mon Sep 27 13:43:59 2010
@@ -27,7 +27,7 @@ import org.apache.commons.math.MathExcep
  */
 public class ChiSquaredDistributionImpl
     extends AbstractContinuousDistribution
-    implements ChiSquaredDistribution, Serializable  {
+    implements ChiSquaredDistribution, Serializable {
     /**
      * Default inverse cumulative probability accuracy
      * @since 2.1
@@ -66,16 +66,7 @@ public class ChiSquaredDistributionImpl
     }
 
     /**
-     * Modify the degrees of freedom.
-     * @param degreesOfFreedom the new degrees of freedom.
-     */
-    private void setDegreesOfFreedomInternal(double degreesOfFreedom) {
-        gamma.setAlpha(degreesOfFreedom / 2.0);
-    }
-
-    /**
-     * Access the degrees of freedom.
-     * @return the degrees of freedom.
+     * {@inheritDoc}
      */
     public double getDegreesOfFreedom() {
         return gamma.getAlpha() * 2.0;
@@ -181,13 +172,13 @@ public class ChiSquaredDistributionImpl
     @Override
     protected double getInitialDomain(double p) {
         // NOTE: chi squared is skewed to the left
-        // NOTE: therefore, P(X < &mu;) > .5
+        // NOTE: therefore, P(X < &mu;) > 0.5
 
         double ret;
 
-        if (p < .5) {
+        if (p < 0.5) {
             // use 1/2 mean
-            ret = getDegreesOfFreedom() * .5;
+            ret = getDegreesOfFreedom() * 0.5;
         } else {
             // use mean
             ret = getDegreesOfFreedom();
@@ -200,7 +191,7 @@ public class ChiSquaredDistributionImpl
      * 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/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=1001736&r1=1001735&r2=1001736&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 13:43:59 2010
@@ -69,20 +69,15 @@ public class ExponentialDistributionImpl
     }
 
     /**
-     * Access the mean.
-     *
-     * @return the mean.
+     * {@inheritDoc}
      */
+    @Override
     public double getMean() {
         return mean;
     }
 
     /**
-     * Return the probability density for a particular point.
-     *
-     * @param x Point at which the density should be computed.
-     * @return the pdf at point {@code x}.
-     * @since 2.1
+     * {@inheritDoc}
      */
     @Override
     public double density(double x) {

Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/GammaDistribution.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/GammaDistribution.java?rev=1001736&r1=1001735&r2=1001736&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/GammaDistribution.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/GammaDistribution.java Mon Sep 27 13:43:59 2010
@@ -29,39 +29,26 @@ package org.apache.commons.math.distribu
  *
  * @version $Revision$ $Date$
  */
-public interface GammaDistribution extends ContinuousDistribution, HasDensity<Double> {
+public interface GammaDistribution extends ContinuousDistribution {
     /**
-     * Modify the shape parameter, alpha.
-     * @param alpha the new shape parameter.
-     * @deprecated as of v2.1
-     */
-    @Deprecated
-    void setAlpha(double alpha);
-
-    /**
-     * Access the shape parameter, alpha
+     * Access the alpha shape parameter.
+     *
      * @return alpha.
      */
     double getAlpha();
 
     /**
-     * Modify the scale parameter, beta.
-     * @param beta the new scale parameter.
-     * @deprecated as of v2.1
-     */
-    @Deprecated
-    void setBeta(double beta);
-
-    /**
-     * Access the scale parameter, beta
+     * Access the beta scale parameter.
+     *
      * @return beta.
      */
     double getBeta();
 
     /**
      * 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/GammaDistributionImpl.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/GammaDistributionImpl.java?rev=1001736&r1=1001735&r2=1001736&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/GammaDistributionImpl.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/distribution/GammaDistributionImpl.java Mon Sep 27 13:43:59 2010
@@ -19,7 +19,7 @@ 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.util.LocalizedFormats;
 import org.apache.commons.math.special.Gamma;
 import org.apache.commons.math.util.FastMath;
@@ -63,14 +63,23 @@ public class GammaDistributionImpl exten
      * Create a new gamma distribution with the given alpha and beta values.
      * @param alpha the shape parameter.
      * @param beta the scale parameter.
-     * @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 alpha <= 0} or
+     * {@code beta <= 0}.
      * @since 2.1
      */
     public GammaDistributionImpl(double alpha, double beta, double inverseCumAccuracy) {
-        super();
-        setAlphaInternal(alpha);
-        setBetaInternal(beta);
+        if (alpha <= 0) {
+            throw new NotStrictlyPositiveException(LocalizedFormats.ALPHA, alpha);
+        }
+        if (beta <= 0) {
+            throw new NotStrictlyPositiveException(LocalizedFormats.BETA, beta);
+        }
+
+        this.alpha = alpha;
+        this.beta = beta;
         solverAbsoluteAccuracy = inverseCumAccuracy;
     }
 
@@ -94,8 +103,8 @@ public class GammaDistributionImpl exten
     public double cumulativeProbability(double x) throws MathException{
         double ret;
 
-        if (x <= 0.0) {
-            ret = 0.0;
+        if (x <= 0) {
+            ret = 0;
         } else {
             ret = Gamma.regularizedGammaP(alpha, x / beta);
         }
@@ -105,22 +114,21 @@ public class GammaDistributionImpl exten
 
     /**
      * 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>
+     * @param p Desired probability.
+     * @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 <code>p</code> is not a valid
-     *         probability.
+     * computed due to convergence or other numerical errors.
+     * @throws IllegalArgumentException if {@code p} is not a valid
+     * probability.
      */
     @Override
     public double inverseCumulativeProbability(final double p)
-    throws MathException {
+        throws MathException {
         if (p == 0) {
-            return 0d;
+            return 0;
         }
         if (p == 1) {
             return Double.POSITIVE_INFINITY;
@@ -129,92 +137,29 @@ public class GammaDistributionImpl exten
     }
 
     /**
-     * Modify the shape parameter, alpha.
-     * @param alpha the new shape parameter.
-     * @throws IllegalArgumentException if <code>alpha</code> is not positive.
-     * @deprecated as of 2.1 (class will become immutable in 3.0)
-     */
-    @Deprecated
-    public void setAlpha(double alpha) {
-        setAlphaInternal(alpha);
-    }
-
-    /**
-     * Modify the shape parameter, alpha.
-     * @param newAlpha the new shape parameter.
-     * @throws IllegalArgumentException if <code>newAlpha</code> is not positive.
-     */
-    private void setAlphaInternal(double newAlpha) {
-        if (newAlpha <= 0.0) {
-            throw MathRuntimeException.createIllegalArgumentException(
-                  LocalizedFormats.NOT_POSITIVE_ALPHA,
-                  newAlpha);
-        }
-        this.alpha = newAlpha;
-    }
-
-    /**
-     * Access the shape parameter, alpha
-     * @return alpha.
+     * {@inheritDoc}
      */
+    @Override
     public double getAlpha() {
         return alpha;
     }
 
     /**
-     * Modify the scale parameter, beta.
-     * @param newBeta the new scale parameter.
-     * @throws IllegalArgumentException if <code>newBeta</code> is not positive.
-     * @deprecated as of 2.1 (class will become immutable in 3.0)
-     */
-    @Deprecated
-    public void setBeta(double newBeta) {
-        setBetaInternal(newBeta);
-    }
-
-    /**
-     * Modify the scale parameter, beta.
-     * @param newBeta the new scale parameter.
-     * @throws IllegalArgumentException if <code>newBeta</code> is not positive.
-     */
-    private void setBetaInternal(double newBeta) {
-        if (newBeta <= 0.0) {
-            throw MathRuntimeException.createIllegalArgumentException(
-                  LocalizedFormats.NOT_POSITIVE_BETA,
-                  newBeta);
-        }
-        this.beta = newBeta;
-    }
-
-    /**
-     * Access the scale parameter, beta
-     * @return beta.
+     * {@inheritDoc}
      */
+    @Override
     public double getBeta() {
         return beta;
     }
 
     /**
-     * Returns the probability density for a particular point.
-     *
-     * @param x The point at which the density should be computed.
-     * @return The pdf at point x.
+     * {@inheritDoc}
      */
     @Override
     public double density(double x) {
         if (x < 0) return 0;
-        return FastMath.pow(x / beta, alpha - 1) / beta * FastMath.exp(-x / beta) / FastMath.exp(Gamma.logGamma(alpha));
-    }
-
-    /**
-     * 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
-     */
-    public double density(Double x) {
-        return density(x.doubleValue());
+        return FastMath.pow(x / beta, alpha - 1) / beta *
+            FastMath.exp(-x / beta) / FastMath.exp(Gamma.logGamma(alpha));
     }
 
     /**
@@ -222,9 +167,8 @@ public class GammaDistributionImpl exten
      * bracket a CDF root.  This method is used by
      * {@link #inverseCumulativeProbability(double)} to find critical values.
      *
-     * @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) {
@@ -238,8 +182,7 @@ public class GammaDistributionImpl exten
      * {@link #inverseCumulativeProbability(double)} to find critical values.
      *
      * @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>
+     * @return domain value upper bound, i.e. {@code P(X < 'upper bound') > p}.
      */
     @Override
     protected double getDomainUpperBound(double p) {
@@ -249,7 +192,7 @@ public class GammaDistributionImpl exten
 
         double ret;
 
-        if (p < .5) {
+        if (p < 0.5) {
             // use mean
             ret = alpha * beta;
         } else {
@@ -261,12 +204,12 @@ public class GammaDistributionImpl exten
     }
 
     /**
-     * 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.  This method is used by
      * {@link #inverseCumulativeProbability(double)} to find critical values.
      *
-     * @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) {
@@ -275,9 +218,9 @@ public class GammaDistributionImpl exten
 
         double ret;
 
-        if (p < .5) {
+        if (p < 0.5) {
             // use 1/2 mean
-            ret = alpha * beta * .5;
+            ret = alpha * beta * 0.5;
         } else {
             // use mean
             ret = alpha * beta;
@@ -290,7 +233,7 @@ public class GammaDistributionImpl exten
      * 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/main/java/org/apache/commons/math/exception/util/LocalizedFormats.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/util/LocalizedFormats.java?rev=1001736&r1=1001735&r2=1001736&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/util/LocalizedFormats.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/util/LocalizedFormats.java Mon Sep 27 13:43:59 2010
@@ -170,8 +170,8 @@ public enum LocalizedFormats implements 
     NOT_INCREASING_NUMBER_OF_POINTS("points {0} and {1} are not increasing ({2} > {3})"),
     NOT_INCREASING_SEQUENCE("points {3} and {2} are not increasing ({1} > {0})"), /* keep */
     NOT_MULTIPLICATION_COMPATIBLE_MATRICES("{0}x{1} and {2}x{3} matrices are not multiplication compatible"),
-    NOT_POSITIVE_ALPHA("alpha must be positive ({0})"),
-    NOT_POSITIVE_BETA("beta must be positive ({0})"),
+    ALPHA("alpha"), /* keep */
+    BETA("beta"), /* keep */
     NOT_POSITIVE_COLUMNDIMENSION("invalid column dimension: {0} (must be positive)"),
     NOT_POSITIVE_DEFINITE_MATRIX("not positive definite matrix"),
     NOT_POSITIVE_DEGREES_OF_FREEDOM("degrees of freedom must be positive ({0})"),

Modified: commons/proper/math/trunk/src/main/resources/META-INF/localization/LocalizedFormats_fr.properties
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/resources/META-INF/localization/LocalizedFormats_fr.properties?rev=1001736&r1=1001735&r2=1001736&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/resources/META-INF/localization/LocalizedFormats_fr.properties (original)
+++ commons/proper/math/trunk/src/main/resources/META-INF/localization/LocalizedFormats_fr.properties Mon Sep 27 13:43:59 2010
@@ -142,8 +142,8 @@ NOT_ENOUGH_POINTS_IN_SPLINE_PARTITION = 
 NOT_INCREASING_NUMBER_OF_POINTS = les points {0} et {1} ne sont pas croissants ({2} > {3})
 NOT_INCREASING_SEQUENCE = les points {3} et {2} ne sont pas croissants ({1} > {0})
 NOT_MULTIPLICATION_COMPATIBLE_MATRICES = les dimensions {0}x{1} et {2}x{3} sont incompatibles pour la multiplication matricielle
-NOT_POSITIVE_ALPHA = alpha doit \u00eatre positif ({0})
-NOT_POSITIVE_BETA = beta doit \u00eatre positif ({0})
+ALPHA = alpha
+BETA = beta
 NOT_POSITIVE_COLUMNDIMENSION = nombre de colonnes invalide : {0} (doit \u00eatre positif)
 NOT_POSITIVE_DEFINITE_MATRIX = matrice non d\u00e9finie positive
 NOT_POSITIVE_DEGREES_OF_FREEDOM = les degr\u00e9s de libert\u00e9 doivent \u00eatre positifs ({0})

Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/distribution/GammaDistributionTest.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/distribution/GammaDistributionTest.java?rev=1001736&r1=1001735&r2=1001736&view=diff
==============================================================================
--- commons/proper/math/trunk/src/test/java/org/apache/commons/math/distribution/GammaDistributionTest.java (original)
+++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/distribution/GammaDistributionTest.java Mon Sep 27 13:43:59 2010
@@ -17,6 +17,8 @@
 
 package org.apache.commons.math.distribution;
 
+import org.apache.commons.math.exception.NotStrictlyPositiveException;
+
 /**
  * Test cases for GammaDistribution.
  * Extends ContinuousDistributionAbstractTest.  See class javadoc for
@@ -74,22 +76,21 @@ public class GammaDistributionTest exten
     public void testParameterAccessors() {
         GammaDistribution distribution = (GammaDistribution) getDistribution();
         assertEquals(4d, distribution.getAlpha(), 0);
-        distribution.setAlpha(3d);
-        assertEquals(3d, distribution.getAlpha(), 0);
         assertEquals(2d, distribution.getBeta(), 0);
-        distribution.setBeta(4d);
-        assertEquals(4d, distribution.getBeta(), 0);
+    }
+
+    public void testPreconditions() {
         try {
-            distribution.setAlpha(0d);
-            fail("Expecting IllegalArgumentException for alpha = 0");
-        } catch (IllegalArgumentException ex) {
-            // expected
+            GammaDistribution distribution = new GammaDistributionImpl(0, 1);
+            fail("Expecting NotStrictlyPositiveException for alpha = 0");
+        } catch (NotStrictlyPositiveException ex) {
+            // Expected.
         }
         try {
-            distribution.setBeta(0d);
-            fail("Expecting IllegalArgumentException for beta = 0");
-        } catch (IllegalArgumentException ex) {
-            // expected
+            GammaDistribution distribution = new GammaDistributionImpl(1, 0);
+            fail("Expecting NotStrictlyPositiveException for alpha = 0");
+        } catch (NotStrictlyPositiveException ex) {
+            // Expected.
         }
     }