tobrien     2003/07/30 14:58:11

  Modified:    math     project.xml
               math/src/java/org/apache/commons/math
                        MathConfigurationException.java
               math/src/java/org/apache/commons/math/analysis
                        SplineInterpolator.java UnivariateRealFunction.java
                        UnivariateRealSolverFactory.java
               math/src/java/org/apache/commons/math/linear
                        RealMatrixImpl.java
               math/src/java/org/apache/commons/math/special Beta.java
                        Gamma.java
               math/src/java/org/apache/commons/math/stat/distribution
                        AbstractContinuousDistribution.java
                        DistributionFactory.java
               math/src/java/org/apache/commons/math/stat/univariate
                        AbstractStorelessUnivariateStatistic.java
               math/src/test/org/apache/commons/math/analysis
                        RealSolverTest.java
               math/src/test/org/apache/commons/math/stat
                        BeanListUnivariateImplTest.java
  Log:
  Bugzilla #22002: applied Brent W's patch which dealt with URSFactory and URSFImpl as 
well as numerous improvements to javadoc
  
  Revision  Changes    Path
  1.23      +1 -1      jakarta-commons-sandbox/math/project.xml
  
  Index: project.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/math/project.xml,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- project.xml       9 Jul 2003 20:08:00 -0000       1.22
  +++ project.xml       30 Jul 2003 21:58:10 -0000      1.23
  @@ -118,7 +118,7 @@
      <report>maven-license-plugin</report>
   <!--   <report>maven-linkcheck-plugin</report> -->
      <report>maven-statcvs-plugin</report>
  -<!--   <report>maven-tasklist-plugin</report> -->
  +   <report>maven-tasklist-plugin</report>
     </reports>
   
   </project>
  
  
  
  1.5       +5 -3      
jakarta-commons-sandbox/math/src/java/org/apache/commons/math/MathConfigurationException.java
  
  Index: MathConfigurationException.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/math/src/java/org/apache/commons/math/MathConfigurationException.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- MathConfigurationException.java   9 Jul 2003 20:02:44 -0000       1.4
  +++ MathConfigurationException.java   30 Jul 2003 21:58:10 -0000      1.5
  @@ -61,13 +61,14 @@
   public class MathConfigurationException extends MathException {
   
       /**
  -     * 
  +     * Default constructor.
        */
       public MathConfigurationException() {
           super();
       }
   
       /**
  +     * Construct an exception with the given message.
        * @param message message describing the problem
        */
       public MathConfigurationException(String message) {
  @@ -75,6 +76,7 @@
       }
   
       /**
  +     * Construct an exception with the given message and root cause.
        * @param message message describing the problem
        * @param throwable caught exception causing this problem
        */
  @@ -83,10 +85,10 @@
       }
   
       /**
  +     * Construct an exception with the given root cause.
        * @param throwable caught exception causing this problem
        */
       public MathConfigurationException(Throwable throwable) {
           super(throwable);
       }
  -
   }
  
  
  
  1.3       +25 -25    
jakarta-commons-sandbox/math/src/java/org/apache/commons/math/analysis/SplineInterpolator.java
  
  Index: SplineInterpolator.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/math/src/java/org/apache/commons/math/analysis/SplineInterpolator.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- SplineInterpolator.java   9 Jul 2003 20:02:43 -0000       1.2
  +++ SplineInterpolator.java   30 Jul 2003 21:58:10 -0000      1.3
  @@ -60,25 +60,31 @@
    *
    */
   public class SplineInterpolator implements UnivariateRealInterpolator {
  -    private double[][] c = null ;
  +    private double[][] c = null;
   
  -    /* (non-Javadoc)
  -     * @see 
org.apache.commons.math.UnivariateRealInterpolator#interpolate(double[], double[])
  +    /**
  +     * Computes an interpolating function for the data set.
  +     * @param xval the arguments for the interpolation points
  +     * @param yval the values for the interpolation points
  +     * @return a function which interpolates the data set
  +     * @throws MathException if arguments violate assumptions made by the
  +     *         interpolationg algorithm
        */
       public UnivariateRealFunction interpolate(double[] xval, double[] yval) {
           if (xval.length != yval.length) {
  -            throw new IllegalArgumentException("Dataset arrays must have same 
length.");
  +            throw new IllegalArgumentException(
  +                "Dataset arrays must have same length.");
           }
   
  -        if ( c == null )
  -        {
  +        if (c == null) {
               // Number of intervals. The number of data points is N+1.
               int n = xval.length - 1;
               // Check whether the xval vector has ascending values.
               // Separation should be checked too (not implemented: which criteria?).
               for (int i = 0; i < n; i++) {
  -                if (xval[i]>=xval[i+1]) {
  -                    throw new IllegalArgumentException("Dataset must specify 
sorted, ascending x values.");
  +                if (xval[i] >= xval[i + 1]) {
  +                    throw new IllegalArgumentException(
  +                        "Dataset must specify sorted, ascending x values.");
                   }
               }
               // Vectors for the equation system. There are n-1 equations for the 
unknowns s[i] (1<=i<=N-1),
  @@ -104,10 +110,9 @@
                   //    (yval[i + 2] - yval[i + 1]) / (xval[i + 2] - xval[i + 1])
                   // take it from the previous loop pass. Note: the interesting part 
of performance
                   // loss is the range check in the array access, not the computation 
itself.
  -                b[i] =
  -                    6.0
  -                        * ((yval[i + 2] - yval[i + 1]) / (xval[i + 2] - xval[i + 1])
  -                            - (yval[i + 1] - yval[i]) / (xval[i + 1] - xval[i]));
  +                b[i] = 6.0 * ((yval[i + 2] - yval[i + 1]) / (xval[i + 2] - 
  +                    xval[i + 1]) - (yval[i + 1] - yval[i]) / (xval[i + 1] -
  +                    xval[i]));
                   d[i] = 2.0 * (xval[i + 2] - xval[i]);
               }
               // Set up upper and lower diagonal. Keep the offsets in mind.
  @@ -132,26 +137,21 @@
               c = new double[n][4];
               c[0][3] = d[0] / (xval[1] - xval[0]) / 6.0;
               c[0][2] = 0.0;
  -            c[0][1] =
  -                (yval[1] - yval[0]) / (xval[1] - xval[0])
  -                    - d[0] * (xval[1] - xval[0]) / 6.0;
  +            c[0][1] = (yval[1] - yval[0]) / (xval[1] - xval[0]) - d[0] * 
  +                (xval[1] - xval[0]) / 6.0;
               for (int i = 1; i < n - 2; i++) {
                   // TODO: This relies on compiler for CSE of xval[i + 1] - xval[i]. 
Is this a reasonable assumption?
                   c[i][3] = (d[i] - d[i - 1]) / (xval[i + 1] - xval[i]) / 6.0;
                   c[i][2] = d[i - 1] / 2.0;
  -                c[i][1] =
  -                    (yval[i + 1] - yval[i]) / (xval[i + 1] - xval[i])
  -                        - d[i] * (xval[i + 1] - xval[i]) / 6.0
  -                        - d[i
  -                        - 1] * (xval[i + 1] - xval[i]) / 3.0;
  +                c[i][1] = (yval[i + 1] - yval[i]) / (xval[i + 1] - xval[i]) -
  +                    d[i] * (xval[i + 1] - xval[i]) / 6.0 - d[i - 1] * 
  +                    (xval[i + 1] - xval[i]) / 3.0;
               }
               // TODO: again, CSE aspects.
               c[n - 1][3] = -d[n - 2] / (xval[n] - xval[n - 1]) / 6.0;
               c[n - 1][2] = d[n - 2] / 2.0;
  -            c[n - 1][1] =
  -                (yval[n] - yval[n - 1]) / (xval[n] - xval[n - 1])
  -                    - d[n
  -                    - 2] * (xval[n] - xval[n - 1]) / 3.0;
  +            c[n - 1][1] = (yval[n] - yval[n - 1]) / (xval[n] - xval[n - 1]) -
  +                d[n - 2] * (xval[n] - xval[n - 1]) / 3.0;
               for (int i = 0; i < n; i++) {
                   c[i][0] = yval[i];
               }
  
  
  
  1.4       +1 -7      
jakarta-commons-sandbox/math/src/java/org/apache/commons/math/analysis/UnivariateRealFunction.java
  
  Index: UnivariateRealFunction.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/math/src/java/org/apache/commons/math/analysis/UnivariateRealFunction.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- UnivariateRealFunction.java       11 Jul 2003 15:59:14 -0000      1.3
  +++ UnivariateRealFunction.java       30 Jul 2003 21:58:10 -0000      1.4
  @@ -71,8 +71,6 @@
        * @return the value
        * @throws MathException if the function couldn't be computed due to
        *  missing additional data or other environmental problems.
  -     * @throws RuntimeException if the operation isn't supported, the argument
  -     *  was outside the supported domain or any other problem.
        */
       public double value(double x) throws MathException;
   
  @@ -85,8 +83,6 @@
        * @param x the point for which the first derivative should be computed
        * @return the value
        * @throws MathException if the derivative couldn't be computed.
  -     * @throws RuntimeException if the operation isn't supported, the argument
  -     *  was outside the supported domain or any other problem.
        */
       public double firstDerivative(double x) throws MathException;
   
  @@ -99,8 +95,6 @@
        * @param x the point for which the first derivative should be computed
        * @return the value
        * @throws MathException if the second derivative couldn't be computed.
  -     * @throws RuntimeException if the operation isn't supported, the argument
  -     *  was outside the supported domain or any other problem.
        */
       public double secondDerivative(double x) throws MathException;
   }
  
  
  
  1.4       +39 -92    
jakarta-commons-sandbox/math/src/java/org/apache/commons/math/analysis/UnivariateRealSolverFactory.java
  
  Index: UnivariateRealSolverFactory.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/math/src/java/org/apache/commons/math/analysis/UnivariateRealSolverFactory.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- UnivariateRealSolverFactory.java  11 Jul 2003 15:59:14 -0000      1.3
  +++ UnivariateRealSolverFactory.java  30 Jul 2003 21:58:10 -0000      1.4
  @@ -53,11 +53,6 @@
    */
   package org.apache.commons.math.analysis;
   
  -import java.lang.reflect.InvocationTargetException;
  -
  -import org.apache.commons.math.MathConfigurationException;
  -import org.apache.commons.math.MathException;
  -
   /**
    * A factory to easily get a default solver and some convenience
    * functions.
  @@ -68,104 +63,56 @@
    * solve() method). 
    * @version $Revision$ $Date$
    */
  -public class UnivariateRealSolverFactory {
  +public abstract class UnivariateRealSolverFactory {
       /**
        * Default constructor.
        */
  -    private UnivariateRealSolverFactory() {
  +    protected UnivariateRealSolverFactory() {
       }
   
       /**
  +     * @return a new factory.
  +     * @todo add comment
  +     * @todo for now, return the only concrete factory.  Later, allow for a
  +     *       plugable implementation, possibly using SPI and commons-discovery.
  +     */
  +    public static UnivariateRealSolverFactory newInstance() {
  +        return new UnivariateRealSolverFactoryImpl();
  +    }
  +    
  +    /**
        * Create a new [EMAIL PROTECTED] UnivariateRealSolver} for the given function. 
 The
  -     * actual solver returned can be controlled by defining the
  -     * <code>org.apache.commons.math.analysis.UnivariateRealSolver</code>
  -     * property on the JVM command-line (<code>
  -     * -Dorg.apache.commons.math.analysis.UnivariateRealSolver=
  -     * <i>class name</i></code>).  The value of the property should be any,
  -     * fully qualified class name for a type that implements the
  -     * [EMAIL PROTECTED] UnivariateRealSolver} interface.  By default, an instance 
of
  -     * [EMAIL PROTECTED] BrentSolver} is returned.
  +     * actual solver returned is determined by the underlying factory.
        * @param f the function.
        * @return the new solver.
  -     * @throws MathConfigurationException if a
        */
  -    public static UnivariateRealSolver newSolver(UnivariateRealFunction f)
  -        throws MathConfigurationException {
  -        String solverClassName =
  -            System.getProperty(
  -                "org.apache.commons.math.analysis.UnivariateRealSolver",
  -                "org.apache.commons.math.analysis.BrentSolver");
  -        try {
  -            Class clazz = Class.forName(solverClassName);
  -            Class paramClass[] = new Class[1];
  -            paramClass[0] = UnivariateRealFunction.class;
  -            Object param[] = new Object[1];
  -            param[0] = f;
  -            return (UnivariateRealSolver)clazz.getConstructor(
  -                paramClass).newInstance(
  -                param);
  -        } catch (IllegalArgumentException e) {
  -            throw new MathConfigurationException(e);
  -        } catch (SecurityException e) {
  -            throw new MathConfigurationException(
  -                "Can't access " + solverClassName,
  -                e);
  -        } catch (ClassNotFoundException e) {
  -            throw new MathConfigurationException(
  -                "Class not found: " + solverClassName,
  -                e);
  -        } catch (InstantiationException e) {
  -            throw new MathConfigurationException(
  -                "Can't instantiate " + solverClassName,
  -                e);
  -        } catch (IllegalAccessException e) {
  -            throw new MathConfigurationException(
  -                "Can't access " + solverClassName,
  -                e);
  -        } catch (InvocationTargetException e) {
  -            throw new MathConfigurationException(e);
  -        } catch (NoSuchMethodException e) {
  -            throw new MathConfigurationException(
  -                "No constructor with UnivariateRealFunction in " +
  -                solverClassName,
  -                e);
  -        }
  -    }
  -
  +    public abstract UnivariateRealSolver newDefaultSolver(
  +        UnivariateRealFunction f);
  +    
       /**
  -     * Convience method to solve for zeros of real univariate functions.  A
  -     * default solver is created and used for solving. 
  +     * Create a new [EMAIL PROTECTED] UnivariateRealSolver} for the given function. 
 The
  +     * solver is an implementation of the bisection method.
        * @param f the function.
  -     * @param x0 the lower bound for the interval.
  -     * @param x1 the upper bound for the interval.
  -     * @return a value where the function is zero.
  -     * @throws MathException if the iteration count was exceeded or the
  -     *         solver detects convergence problems otherwise.
  -     */
  -    public static double solve(UnivariateRealFunction f, double x0, double x1)
  -        throws MathException {
  -        return newSolver(f).solve(x0, x1);
  -    }
  -
  +     * @return the new solver.
  +     */
  +    public abstract UnivariateRealSolver newBisectionSolver(
  +        UnivariateRealFunction f);
  +    
       /**
  -     * Convience method to solve for zeros of real univariate functions.  A
  -     * default solver is created and used for solving. 
  +     * Create a new [EMAIL PROTECTED] UnivariateRealSolver} for the given function. 
 The
  +     * solver is an implementation of the Brent method.
        * @param f the function.
  -     * @param x0 the lower bound for the interval.
  -     * @param x1 the upper bound for the interval.
  -     * @param absoluteAccuracy the accuracy to be used by the solver.
  -     * @return a value where the function is zero.
  -     * @throws MathException if the iteration count was exceeded or the
  -     *         solver detects convergence problems otherwise.
  -     */
  -    public static double solve(
  -        UnivariateRealFunction f,
  -        double x0,
  -        double x1,
  -        double absoluteAccuracy)
  -        throws MathException {
  -        UnivariateRealSolver solver = newSolver(f);
  -        solver.setAbsoluteAccuracy(absoluteAccuracy);
  -        return solver.solve(x0, x1);
  -    }
  +     * @return the new solver.
  +     */
  +    public abstract UnivariateRealSolver newBrentSolver(
  +        UnivariateRealFunction f);
  +    
  +    /**
  +     * Create a new [EMAIL PROTECTED] UnivariateRealSolver} for the given function. 
 The
  +     * solver is an implementation of the secant method.
  +     * @param f the function.
  +     * @return the new solver.
  +     */
  +    public abstract UnivariateRealSolver newSecantSolver(
  +        UnivariateRealFunction f);
   }
  
  
  
  1.4       +7 -6      
jakarta-commons-sandbox/math/src/java/org/apache/commons/math/linear/RealMatrixImpl.java
  
  Index: RealMatrixImpl.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/math/src/java/org/apache/commons/math/linear/RealMatrixImpl.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- RealMatrixImpl.java       7 Jul 2003 23:19:22 -0000       1.3
  +++ RealMatrixImpl.java       30 Jul 2003 21:58:10 -0000      1.4
  @@ -384,8 +384,9 @@
        */
       public double getEntry(int row, int column)
       throws IllegalArgumentException {
  -        if (row < 1 || column < 1 || row > this.getRowDimension()
  -        || column > this.getColumnDimension()) {
  +        if (row < 1 || column < 1 || row > this.getRowDimension() ||
  +            column > this.getColumnDimension()) {
  +                
               throw new IllegalArgumentException
               ("matrix entry does not exist");
           }
  @@ -400,8 +401,9 @@
        */
       public void setEntry(int row, int column, double value)
       throws IllegalArgumentException {
  -        if (row < 1 || column < 1 || row > this.getRowDimension()
  -        || column > this.getColumnDimension()) {
  +        if (row < 1 || column < 1 || row > this.getRowDimension() ||
  +            column > this.getColumnDimension()) {
  +                
               throw new IllegalArgumentException
               ("matrix entry does not exist");
           }
  @@ -587,7 +589,6 @@
           }
           
           int nCol = this.getColumnDimension();
  -        int nRow = this.getRowDimension();
           int nColB = b.getColumnDimension();
           int nRowB = b.getRowDimension();
           
  
  
  
  1.8       +12 -15    
jakarta-commons-sandbox/math/src/java/org/apache/commons/math/special/Beta.java
  
  Index: Beta.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/math/src/java/org/apache/commons/math/special/Beta.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- Beta.java 9 Jul 2003 20:03:09 -0000       1.7
  +++ Beta.java 30 Jul 2003 21:58:10 -0000      1.8
  @@ -143,8 +143,8 @@
               
           double ret;
   
  -        if (Double.isNaN(x) || Double.isNaN(a) || Double.isNaN(b) || (x < 0)
  -                || (x > 1) || (a <= 0.0) || (b <= 0.0)) {
  +        if (Double.isNaN(x) || Double.isNaN(a) || Double.isNaN(b) || (x < 0) ||
  +            (x > 1) || (a <= 0.0) || (b <= 0.0)) {
               ret = Double.NaN;
           } else {
               ContinuedFraction fraction = new ContinuedFraction() {
  @@ -158,15 +158,12 @@
                           default :
                               if (n % 2 == 0) { // even
                                   m = (n - 2.0) / 2.0;
  -                                ret =
  -                                    -((a + m) * (a + b + m) * x)
  -                                        / ((a + (2 * m))
  -                                        * (a + (2 * m) + 1.0));
  +                                ret = -((a + m) * (a + b + m) * x) /
  +                                    ((a + (2 * m)) * (a + (2 * m) + 1.0));
                               } else {
                                   m = (n - 1.0) / 2.0;
  -                                ret =
  -                                    (m * (b - m) * x)
  -                                        / ((a + (2 * m) - 1) * (a + (2 * m)));
  +                                ret = (m * (b - m) * x) /
  +                                    ((a + (2 * m) - 1) * (a + (2 * m)));
                               }
                               break;
                       }
  @@ -186,9 +183,9 @@
                       return ret;
                   }
               };
  -            ret = Math.exp((a * Math.log(x)) + (b * Math.log(1.0 - x))
  -                - Math.log(a) - logBeta(a, b, epsilon, maxIterations))
  -                * fraction.evaluate(x, epsilon, maxIterations);
  +            ret = Math.exp((a * Math.log(x)) + (b * Math.log(1.0 - x)) -
  +                Math.log(a) - logBeta(a, b, epsilon, maxIterations)) *
  +                fraction.evaluate(x, epsilon, maxIterations);
           }
   
           return ret;
  @@ -230,8 +227,8 @@
           if (Double.isNaN(a) || Double.isNaN(b) || (a <= 0.0) || (b <= 0.0)) {
               ret = Double.NaN;
           } else {
  -            ret = Gamma.logGamma(a) + Gamma.logGamma(b)
  -                - Gamma.logGamma(a + b);
  +            ret = Gamma.logGamma(a) + Gamma.logGamma(b) -
  +                Gamma.logGamma(a + b);
           }
   
           return ret;
  
  
  
  1.10      +4 -7      
jakarta-commons-sandbox/math/src/java/org/apache/commons/math/special/Gamma.java
  
  Index: Gamma.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/math/src/java/org/apache/commons/math/special/Gamma.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- Gamma.java        9 Jul 2003 20:03:09 -0000       1.9
  +++ Gamma.java        30 Jul 2003 21:58:10 -0000      1.10
  @@ -156,10 +156,7 @@
                   throw new ConvergenceException(
                       "maximum number of iterations reached");
               } else {
  -                ret = Math.exp(-x + 
  -                               (a * Math.log(x)) - 
  -                               logGamma(a)) 
  -                    * sum;
  +                ret = Math.exp(-x + (a * Math.log(x)) - logGamma(a)) * sum;
               }
           }
   
  @@ -198,8 +195,8 @@
               sum = sum + lanczos[0];
   
               double tmp = x + g + .5;
  -            ret = ((x + .5) * Math.log(tmp)) - tmp
  -                + (.5 * Math.log(2.0 * Math.PI)) + Math.log(sum) - Math.log(x);
  +            ret = ((x + .5) * Math.log(tmp)) - tmp +
  +                (.5 * Math.log(2.0 * Math.PI)) + Math.log(sum) - Math.log(x);
           }
   
           return ret;
  
  
  
  1.8       +3 -3      
jakarta-commons-sandbox/math/src/java/org/apache/commons/math/stat/distribution/AbstractContinuousDistribution.java
  
  Index: AbstractContinuousDistribution.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/math/src/java/org/apache/commons/math/stat/distribution/AbstractContinuousDistribution.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- AbstractContinuousDistribution.java       9 Jul 2003 20:03:23 -0000       1.7
  +++ AbstractContinuousDistribution.java       30 Jul 2003 21:58:11 -0000      1.8
  @@ -56,7 +56,7 @@
   import org.apache.commons.math.MathException;
   import org.apache.commons.math.analysis.RootFinding;
   import org.apache.commons.math.analysis.UnivariateRealFunction;
  -import org.apache.commons.math.analysis.UnivariateRealSolverFactory;
  +import org.apache.commons.math.analysis.UnivariateRealSolverUtil;
   
   /**
    * Base class for various continuous distributions.  It provides default
  @@ -126,7 +126,7 @@
                   getDomainUpperBound(p));
               
               // find root
  -            double root = UnivariateRealSolverFactory.solve(
  +            double root = UnivariateRealSolverUtil.solve(
                   rootFindingFunction, bracket[0], bracket[1]);
           
               return root;
  
  
  
  1.9       +3 -4      
jakarta-commons-sandbox/math/src/java/org/apache/commons/math/stat/distribution/DistributionFactory.java
  
  Index: DistributionFactory.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/math/src/java/org/apache/commons/math/stat/distribution/DistributionFactory.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- DistributionFactory.java  9 Jul 2003 20:03:22 -0000       1.8
  +++ DistributionFactory.java  30 Jul 2003 21:58:11 -0000      1.9
  @@ -83,11 +83,10 @@
       /**
        * Create an instance of a <code>DistributionFactory</code>
        * @return a new factory. 
  +     * @todo for now, return the only concrete factory.  Later, allow for a
  +     *       plugable implementation, possibly using SPI and commons-discovery.
        */
       public static DistributionFactory newInstance() {
  -        // for now, return the only concrete factory.
  -        // later, allow for a plugable implementation, possible using SPI and
  -        // commons-discovery.
           return new DistributionFactoryImpl();
       }
       
  
  
  
  1.6       +2 -2      
jakarta-commons-sandbox/math/src/java/org/apache/commons/math/stat/univariate/AbstractStorelessUnivariateStatistic.java
  
  Index: AbstractStorelessUnivariateStatistic.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/math/src/java/org/apache/commons/math/stat/univariate/AbstractStorelessUnivariateStatistic.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- AbstractStorelessUnivariateStatistic.java 15 Jul 2003 03:37:10 -0000      1.5
  +++ AbstractStorelessUnivariateStatistic.java 30 Jul 2003 21:58:11 -0000      1.6
  @@ -77,7 +77,7 @@
           if (this.test(values, begin, length)) {
               this.clear();
               int l = begin + length;
  -            for (int i = begin; i < begin + length; i++) {
  +            for (int i = begin; i < l; i++) {
                   increment(values[i]);
               }
           }
  
  
  
  1.2       +11 -11    
jakarta-commons-sandbox/math/src/test/org/apache/commons/math/analysis/RealSolverTest.java
  
  Index: RealSolverTest.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/math/src/test/org/apache/commons/math/analysis/RealSolverTest.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- RealSolverTest.java       24 Jun 2003 03:02:28 -0000      1.1
  +++ RealSolverTest.java       30 Jul 2003 21:58:11 -0000      1.2
  @@ -282,27 +282,27 @@
           // 14 iterations on i586 JDK 1.4.1.
           assertTrue(solver.getIterationCount() <= 15);
           // Static solve method
  -        result = UnivariateRealSolverFactory.solve(f, -0.2, 0.2);
  +        result = UnivariateRealSolverUtil.solve(f, -0.2, 0.2);
           assertEquals(result, 0, solver.getAbsoluteAccuracy());
  -        result = UnivariateRealSolverFactory.solve(f, -0.1, 0.3);
  +        result = UnivariateRealSolverUtil.solve(f, -0.1, 0.3);
           Assert.assertEquals(result, 0, 1E-8);
  -        result = UnivariateRealSolverFactory.solve(f, -0.3, 0.45);
  +        result = UnivariateRealSolverUtil.solve(f, -0.3, 0.45);
           Assert.assertEquals(result, 0, 1E-6);
  -        result = UnivariateRealSolverFactory.solve(f, 0.3, 0.7);
  +        result = UnivariateRealSolverUtil.solve(f, 0.3, 0.7);
           Assert.assertEquals(result, 0.5, 1E-6);
  -        result = UnivariateRealSolverFactory.solve(f, 0.2, 0.6);
  +        result = UnivariateRealSolverUtil.solve(f, 0.2, 0.6);
           Assert.assertEquals(result, 0.5, 1E-6);
  -        result = UnivariateRealSolverFactory.solve(f, 0.05, 0.95);
  +        result = UnivariateRealSolverUtil.solve(f, 0.05, 0.95);
           Assert.assertEquals(result, 0.5, 1E-6);
  -        result = UnivariateRealSolverFactory.solve(f, 0.85, 1.25);
  +        result = UnivariateRealSolverUtil.solve(f, 0.85, 1.25);
           Assert.assertEquals(result, 1.0, 1E-6);
  -        result = UnivariateRealSolverFactory.solve(f, 0.8, 1.2);
  +        result = UnivariateRealSolverUtil.solve(f, 0.8, 1.2);
           Assert.assertEquals(result, 1.0, 1E-6);
  -        result = UnivariateRealSolverFactory.solve(f, 0.85, 1.75);
  +        result = UnivariateRealSolverUtil.solve(f, 0.85, 1.75);
           Assert.assertEquals(result, 1.0, 1E-6);
  -        result = UnivariateRealSolverFactory.solve(f, 0.55, 1.45);
  +        result = UnivariateRealSolverUtil.solve(f, 0.55, 1.45);
           Assert.assertEquals(result, 1.0, 1E-6);
  -        result = UnivariateRealSolverFactory.solve(f, 0.85, 5);
  +        result = UnivariateRealSolverUtil.solve(f, 0.85, 5);
           Assert.assertEquals(result, 1.0, 1E-6);
       }
   }
  
  
  
  1.3       +1 -58     
jakarta-commons-sandbox/math/src/test/org/apache/commons/math/stat/BeanListUnivariateImplTest.java
  
  Index: BeanListUnivariateImplTest.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/math/src/test/org/apache/commons/math/stat/BeanListUnivariateImplTest.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- BeanListUnivariateImplTest.java   22 Jun 2003 03:57:53 -0000      1.2
  +++ BeanListUnivariateImplTest.java   30 Jul 2003 21:58:11 -0000      1.3
  @@ -138,62 +138,5 @@
                         ageU.getMax(), 0.001 );
   
       }
  -
  -    /*    public void testN0andN1Conditions() throws Exception {
  -     List list = new ArrayList();
  -     
  -     StoreUnivariate u = new ListUnivariateImpl( list );
  -             
  -             assertTrue("Mean of n = 0 set should be NaN", Double.isNaN( 
u.getMean() ) );
  -             assertTrue("Standard Deviation of n = 0 set should be NaN", 
Double.isNaN( u.getStandardDeviation() ) );
  -             assertTrue("Variance of n = 0 set should be NaN", 
Double.isNaN(u.getVariance() ) );
  -
  -             list.add( new Double(one));
  -
  -             assertTrue( "Mean of n = 1 set should be value of single item n1", 
u.getMean() == one);
  -             assertTrue( "StdDev of n = 1 set should be zero, instead it is: " + 
u.getStandardDeviation(), u.getStandardDeviation() == 0);
  -             assertTrue( "Variance of n = 1 set should be zero", u.getVariance() == 
0);      
  -    }
  -    
  -    public void testSkewAndKurtosis() {
  -     StoreUnivariate u = new StoreUnivariateImpl();
  -     
  -     double[] testArray = { 12.5, 12, 11.8, 14.2, 14.9, 14.5, 21, 8.2, 10.3, 11.3, 
14.1,
  -                                                                                    
  9.9, 12.2, 12, 12.1, 11, 19.8, 11, 10, 8.8, 9, 12.3 };
  -             for( int i = 0; i < testArray.length; i++) {
  -                     u.addValue( testArray[i]);
  -             }
  -             
  -             assertEquals("mean", 12.40455, u.getMean(), 0.0001);
  -             assertEquals("variance", 10.00236, u.getVariance(), 0.0001);
  -             assertEquals("skewness", 1.437424, u.getSkewness(), 0.0001);
  -             assertEquals("kurtosis", 2.37719, u.getKurtosis(), 0.0001);
  -    }
  -
  -    public void testProductAndGeometricMean() throws Exception {
  -     ListUnivariateImpl u = new ListUnivariateImpl(new ArrayList());
  -        u.setWindowSize(10);
  -             
  -        u.addValue( 1.0 );
  -        u.addValue( 2.0 );
  -        u.addValue( 3.0 );
  -        u.addValue( 4.0 );
  -
  -        assertEquals( "Product not expected", 24.0, u.getProduct(), 
Double.MIN_VALUE );
  -        assertEquals( "Geometric mean not expected", 2.213364, 
u.getGeometricMean(), 0.00001 );
  -
  -        // Now test rolling - UnivariateImpl should discount the contribution
  -        // of a discarded element
  -        for( int i = 0; i < 10; i++ ) {
  -            u.addValue( i + 2 );
  -        }
  -        // Values should be (2,3,4,5,6,7,8,9,10,11)
  -        
  -        assertEquals( "Product not expected", 39916800.0, u.getProduct(), 0.00001 );
  -        assertEquals( "Geometric mean not expected", 5.755931, 
u.getGeometricMean(), 0.00001 );
  -
  -
  -        } */
  -
   }
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to