You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by lu...@apache.org on 2012/08/25 12:06:00 UTC

svn commit: r1377245 - in /commons/proper/math/trunk/src: changes/ main/java/org/apache/commons/math3/analysis/solvers/ site/xdoc/userguide/ test/java/org/apache/commons/math3/analysis/solvers/

Author: luc
Date: Sat Aug 25 10:06:00 2012
New Revision: 1377245

URL: http://svn.apache.org/viewvc?rev=1377245&view=rev
Log:
Integrated the new differentiation framework in the solvers package.

As discussed on the developers mailing list, a separate
NewtonRaphsonSolver has been set up using the new interfaces, and the
older NewtonSolver has been deprecated. It should be removed in 4.0.

Added:
    commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/AbstractUnivariateDifferentiableSolver.java
      - copied, changed from r1377244, commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/AbstractDifferentiableUnivariateSolver.java
    commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/NewtonRaphsonSolver.java
      - copied, changed from r1377244, commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/NewtonSolver.java
    commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/UnivariateDifferentiableSolver.java
      - copied, changed from r1377244, commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/DifferentiableUnivariateSolver.java
    commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/NewtonRaphsonSolverTest.java
      - copied, changed from r1377244, commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/NewtonSolverTest.java
Modified:
    commons/proper/math/trunk/src/changes/changes.xml
    commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/AbstractDifferentiableUnivariateSolver.java
    commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.java
    commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/DifferentiableUnivariateSolver.java
    commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/NewtonSolver.java
    commons/proper/math/trunk/src/site/xdoc/userguide/analysis.xml
    commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/BracketingNthOrderBrentSolverTest.java
    commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/NewtonSolverTest.java

Modified: commons/proper/math/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/changes/changes.xml?rev=1377245&r1=1377244&r2=1377245&view=diff
==============================================================================
--- commons/proper/math/trunk/src/changes/changes.xml (original)
+++ commons/proper/math/trunk/src/changes/changes.xml Sat Aug 25 10:06:00 2012
@@ -52,6 +52,11 @@ If the output is not quite correct, chec
   <body>
     <release version="3.1" date="TBD" description="
 ">
+      <action dev="luc" type="add" >
+        Added a NewtonRaphsonSolver taht use the new differentiation package
+        to define the function to solve. This class is intended to replace the
+        former NewtonSolver which is deprecated.
+      </action>
       <action dev="psteitz" type="update" issue="MATH-850">
         Added RandomDataGenerator to replace RandomDataImpl and deprecated
         RandomData interface and RandomDataImpl class. Deprecated

Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/AbstractDifferentiableUnivariateSolver.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/AbstractDifferentiableUnivariateSolver.java?rev=1377245&r1=1377244&r2=1377245&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/AbstractDifferentiableUnivariateSolver.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/AbstractDifferentiableUnivariateSolver.java Sat Aug 25 10:06:00 2012
@@ -26,7 +26,9 @@ import org.apache.commons.math3.analysis
  *
  * @since 3.0
  * @version $Id$
+ * @deprecated as of 3.1, replaced by {@link AbstractUnivariateDifferentiableSolver}
  */
+@Deprecated
 public abstract class AbstractDifferentiableUnivariateSolver
     extends BaseAbstractUnivariateSolver<DifferentiableUnivariateFunction>
     implements DifferentiableUnivariateSolver {

Copied: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/AbstractUnivariateDifferentiableSolver.java (from r1377244, commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/AbstractDifferentiableUnivariateSolver.java)
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/AbstractUnivariateDifferentiableSolver.java?p2=commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/AbstractUnivariateDifferentiableSolver.java&p1=commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/AbstractDifferentiableUnivariateSolver.java&r1=1377244&r2=1377245&rev=1377245&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/AbstractDifferentiableUnivariateSolver.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/AbstractUnivariateDifferentiableSolver.java Sat Aug 25 10:06:00 2012
@@ -17,28 +17,29 @@
 
 package org.apache.commons.math3.analysis.solvers;
 
-import org.apache.commons.math3.analysis.DifferentiableUnivariateFunction;
-import org.apache.commons.math3.analysis.UnivariateFunction;
+import org.apache.commons.math3.analysis.differentiation.DerivativeStructure;
+import org.apache.commons.math3.analysis.differentiation.UnivariateDifferentiable;
 
 /**
  * Provide a default implementation for several functions useful to generic
  * solvers.
  *
- * @since 3.0
+ * @since 3.1
  * @version $Id$
  */
-public abstract class AbstractDifferentiableUnivariateSolver
-    extends BaseAbstractUnivariateSolver<DifferentiableUnivariateFunction>
-    implements DifferentiableUnivariateSolver {
-    /** Derivative of the function to solve. */
-    private UnivariateFunction functionDerivative;
+public abstract class AbstractUnivariateDifferentiableSolver
+    extends BaseAbstractUnivariateSolver<UnivariateDifferentiable>
+    implements UnivariateDifferentiableSolver {
+
+    /** Function to solve. */
+    private UnivariateDifferentiable function;
 
     /**
      * Construct a solver with given absolute accuracy.
      *
      * @param absoluteAccuracy Maximum absolute error.
      */
-    protected AbstractDifferentiableUnivariateSolver(final double absoluteAccuracy) {
+    protected AbstractUnivariateDifferentiableSolver(final double absoluteAccuracy) {
         super(absoluteAccuracy);
     }
 
@@ -49,9 +50,9 @@ public abstract class AbstractDifferenti
      * @param absoluteAccuracy Maximum absolute error.
      * @param functionValueAccuracy Maximum function value error.
      */
-    protected AbstractDifferentiableUnivariateSolver(final double relativeAccuracy,
-                                                         final double absoluteAccuracy,
-                                                         final double functionValueAccuracy) {
+    protected AbstractUnivariateDifferentiableSolver(final double relativeAccuracy,
+                                                     final double absoluteAccuracy,
+                                                     final double functionValueAccuracy) {
         super(relativeAccuracy, absoluteAccuracy, functionValueAccuracy);
     }
 
@@ -59,22 +60,22 @@ public abstract class AbstractDifferenti
      * Compute the objective function value.
      *
      * @param point Point at which the objective function must be evaluated.
-     * @return the objective function value at specified point.
+     * @return the objective function value and derivative at specified point.
      * @throws org.apache.commons.math3.exception.TooManyEvaluationsException
      * if the maximal number of evaluations is exceeded.
      */
-    protected double computeDerivativeObjectiveValue(double point) {
+    protected DerivativeStructure computeObjectiveValueAndDerivative(double point) {
         incrementEvaluationCount();
-        return functionDerivative.value(point);
+        return function.value(new DerivativeStructure(1, 1, 0, point));
     }
 
     /**
      * {@inheritDoc}
      */
     @Override
-    protected void setup(int maxEval, DifferentiableUnivariateFunction f,
+    protected void setup(int maxEval, UnivariateDifferentiable f,
                          double min, double max, double startValue) {
         super.setup(maxEval, f, min, max, startValue);
-        functionDerivative = f.derivative();
+        function = f;
     }
 }

Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.java?rev=1377245&r1=1377244&r2=1377245&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/BaseAbstractUnivariateSolver.java Sat Aug 25 10:06:00 2012
@@ -287,7 +287,7 @@ public abstract class BaseAbstractUnivar
      * Method {@link #computeObjectiveValue(double)} calls this method internally.
      * It is provided for subclasses that do not exclusively use
      * {@code computeObjectiveValue} to solve the function.
-     * See e.g. {@link AbstractDifferentiableUnivariateSolver}.
+     * See e.g. {@link AbstractUnivariateDifferentiableSolver}.
      */
     protected void incrementEvaluationCount() {
         try {

Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/DifferentiableUnivariateSolver.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/DifferentiableUnivariateSolver.java?rev=1377245&r1=1377244&r2=1377245&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/DifferentiableUnivariateSolver.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/DifferentiableUnivariateSolver.java Sat Aug 25 10:06:00 2012
@@ -24,6 +24,7 @@ import org.apache.commons.math3.analysis
  * Implementations will search for only one zero in the given interval.
  *
  * @version $Id$
+ * @deprecated as of 3.1, replaced by {@link UnivariateDifferentiableSolver}
  */
 public interface DifferentiableUnivariateSolver
     extends BaseUnivariateSolver<DifferentiableUnivariateFunction> {}

Copied: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/NewtonRaphsonSolver.java (from r1377244, commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/NewtonSolver.java)
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/NewtonRaphsonSolver.java?p2=commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/NewtonRaphsonSolver.java&p1=commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/NewtonSolver.java&r1=1377244&r2=1377245&rev=1377245&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/NewtonSolver.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/NewtonRaphsonSolver.java Sat Aug 25 10:06:00 2012
@@ -17,25 +17,26 @@
 
 package org.apache.commons.math3.analysis.solvers;
 
-import org.apache.commons.math3.analysis.DifferentiableUnivariateFunction;
+import org.apache.commons.math3.analysis.differentiation.DerivativeStructure;
+import org.apache.commons.math3.analysis.differentiation.UnivariateDifferentiable;
 import org.apache.commons.math3.util.FastMath;
 
 /**
  * Implements <a href="http://mathworld.wolfram.com/NewtonsMethod.html">
- * Newton's Method</a> for finding zeros of real univariate functions.
- * <p>
- * The function should be continuous but not necessarily smooth.</p>
+ * Newton's Method</a> for finding zeros of real univariate differentiable
+ * functions.
  *
+ * @since 3.1
  * @version $Id$
  */
-public class NewtonSolver extends AbstractDifferentiableUnivariateSolver {
+public class NewtonRaphsonSolver extends AbstractUnivariateDifferentiableSolver {
     /** Default absolute accuracy. */
     private static final double DEFAULT_ABSOLUTE_ACCURACY = 1e-6;
 
     /**
      * Construct a solver.
      */
-    public NewtonSolver() {
+    public NewtonRaphsonSolver() {
         this(DEFAULT_ABSOLUTE_ACCURACY);
     }
     /**
@@ -43,7 +44,7 @@ public class NewtonSolver extends Abstra
      *
      * @param absoluteAccuracy Absolute accuracy.
      */
-    public NewtonSolver(double absoluteAccuracy) {
+    public NewtonRaphsonSolver(double absoluteAccuracy) {
         super(absoluteAccuracy);
     }
 
@@ -61,7 +62,7 @@ public class NewtonSolver extends Abstra
      * if {@code min >= max}.
      */
     @Override
-    public double solve(int maxEval, final DifferentiableUnivariateFunction f,
+    public double solve(int maxEval, final UnivariateDifferentiable f,
                         final double min, final double max) {
         return super.solve(maxEval, f, UnivariateSolverUtils.midpoint(min, max));
     }
@@ -77,7 +78,8 @@ public class NewtonSolver extends Abstra
         double x0 = startValue;
         double x1;
         while (true) {
-            x1 = x0 - (computeObjectiveValue(x0) / computeDerivativeObjectiveValue(x0));
+            final DerivativeStructure y0 = computeObjectiveValueAndDerivative(x0);
+            x1 = x0 - (y0.getValue() / y0.getPartialDerivative(1));
             if (FastMath.abs(x1 - x0) <= absoluteAccuracy) {
                 return x1;
             }

Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/NewtonSolver.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/NewtonSolver.java?rev=1377245&r1=1377244&r2=1377245&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/NewtonSolver.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/NewtonSolver.java Sat Aug 25 10:06:00 2012
@@ -26,8 +26,10 @@ import org.apache.commons.math3.util.Fas
  * <p>
  * The function should be continuous but not necessarily smooth.</p>
  *
+ * @deprecated as of 3.1, replaced by {@link NewtonRaphsonSolverTest}
  * @version $Id$
  */
+@Deprecated
 public class NewtonSolver extends AbstractDifferentiableUnivariateSolver {
     /** Default absolute accuracy. */
     private static final double DEFAULT_ABSOLUTE_ACCURACY = 1e-6;

Copied: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/UnivariateDifferentiableSolver.java (from r1377244, commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/DifferentiableUnivariateSolver.java)
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/UnivariateDifferentiableSolver.java?p2=commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/UnivariateDifferentiableSolver.java&p1=commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/DifferentiableUnivariateSolver.java&r1=1377244&r2=1377245&rev=1377245&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/DifferentiableUnivariateSolver.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/analysis/solvers/UnivariateDifferentiableSolver.java Sat Aug 25 10:06:00 2012
@@ -16,14 +16,15 @@
  */
 package org.apache.commons.math3.analysis.solvers;
 
-import org.apache.commons.math3.analysis.DifferentiableUnivariateFunction;
+import org.apache.commons.math3.analysis.differentiation.UnivariateDifferentiable;
 
 
 /**
  * Interface for (univariate real) rootfinding algorithms.
  * Implementations will search for only one zero in the given interval.
  *
+ * @since 3.1
  * @version $Id$
  */
-public interface DifferentiableUnivariateSolver
-    extends BaseUnivariateSolver<DifferentiableUnivariateFunction> {}
+public interface UnivariateDifferentiableSolver
+    extends BaseUnivariateSolver<UnivariateDifferentiable> {}

Modified: commons/proper/math/trunk/src/site/xdoc/userguide/analysis.xml
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/site/xdoc/userguide/analysis.xml?rev=1377245&r1=1377244&r2=1377245&view=diff
==============================================================================
--- commons/proper/math/trunk/src/site/xdoc/userguide/analysis.xml (original)
+++ commons/proper/math/trunk/src/site/xdoc/userguide/analysis.xml Sat Aug 25 10:06:00 2012
@@ -94,11 +94,11 @@
       <subsection name="4.3 Root-finding" href="rootfinding">
         <p>
           <a href="../apidocs/org/apache/commons/math3/analysis/solvers/UnivariateSolver.html">
-          UnivariateSolver</a>, <a href="../apidocs/org/apache/commons/math3/analysis/solvers/DifferentiableUnivariateSolver.html">
-          DifferentiableUnivariateSolver</a> and <a href="../apidocs/org/apache/commons/math3/analysis/solvers/PolynomialSolver.html">
+          UnivariateSolver</a>, <a href="../apidocs/org/apache/commons/math3/analysis/solvers/UnivariateDifferentiableSolver.html">
+          UnivariateDifferentiableSolver</a> and <a href="../apidocs/org/apache/commons/math3/analysis/solvers/PolynomialSolver.html">
           PolynomialSolver</a> provide means to find roots of
           <a href="../apidocs/org/apache/commons/math3/analysis/UnivariateFunction.html">univariate real-valued functions</a>,
-          <a href="../apidocs/org/apache/commons/math3/analysis/DifferentiableUnivariateFunction.html">differentiable univariate real-valued functions</a>,
+          <a href="../apidocs/org/apache/commons/math3/analysis/differentiation/UnivariateDifferentiable.html">differentiable univariate real-valued functions</a>,
           and <a href="../apidocs/org/apache/commons/math3/analysis/polynomials/PolynomialFunction.html">polynomial functions</a> respectively.
           A root is the value where the function takes the value 0.  Commons-Math
           includes implementations of the several root-finding algorithms:
@@ -155,8 +155,8 @@
               <td>no</td>
             </tr>
             <tr>
-              <td><a href="../apidocs/org/apache/commons/math3/analysis/solvers/NewtonSolver.html">Newton's Method</a></td>
-              <td><a href="../apidocs/org/apache/commons/math3/analysis/DifferentiableUnivariateFunction.html">differentiable univariate real-valued functions</a></td>
+              <td><a href="../apidocs/org/apache/commons/math3/analysis/solvers/NewtonRaphsonSolver.html">Newton-Raphson's Method</a></td>
+              <td><a href="../apidocs/org/apache/commons/math3/analysis/differentiation/UnivariateDifferentiable.html">differentiable univariate real-valued functions</a></td>
               <td>quadratic, non-guaranteed</td>
               <td>no</td>
               <td>no</td>

Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/BracketingNthOrderBrentSolverTest.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/BracketingNthOrderBrentSolverTest.java?rev=1377245&r1=1377244&r2=1377245&view=diff
==============================================================================
--- commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/BracketingNthOrderBrentSolverTest.java (original)
+++ commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/BracketingNthOrderBrentSolverTest.java Sat Aug 25 10:06:00 2012
@@ -17,7 +17,6 @@
 
 package org.apache.commons.math3.analysis.solvers;
 
-import org.apache.commons.math3.analysis.DifferentiableUnivariateFunction;
 import org.apache.commons.math3.analysis.QuinticFunction;
 import org.apache.commons.math3.analysis.UnivariateFunction;
 import org.apache.commons.math3.analysis.differentiation.DerivativeStructure;
@@ -150,37 +149,32 @@ public final class BracketingNthOrderBre
 
     private void compare(final UnivariateDifferentiable f,
                          double root, double min, double max) {
-        DifferentiableUnivariateFunction df = new DifferentiableUnivariateFunction() {
-            public double value(double x) {
-                return f.value(x);
-            }
-            
-            public UnivariateFunction derivative() {
-                return new UnivariateFunction() {
-                    public double value(double x) {
-                        return f.value(new DerivativeStructure(1, 1, 0, x)).getPartialDerivative(1);
-                    }
-                };
-            }
-        };
-        NewtonSolver newton = new NewtonSolver(1.0e-12);
+        NewtonRaphsonSolver newton = new NewtonRaphsonSolver(1.0e-12);
         BracketingNthOrderBrentSolver bracketing =
                 new BracketingNthOrderBrentSolver(1.0e-12, 1.0e-12, 1.0e-18, 5);
         double resultN;
         try {
-            resultN = newton.solve(100, df, min, max);
+            resultN = newton.solve(100, f, min, max);
         } catch (TooManyEvaluationsException tmee) {
             resultN = Double.NaN;
         }
         double resultB;
         try {
-            resultB = bracketing.solve(100, df, min, max);
+            resultB = bracketing.solve(100, f, min, max);
         } catch (TooManyEvaluationsException tmee) {
             resultB = Double.NaN;
         }
         Assert.assertEquals(root, resultN, newton.getAbsoluteAccuracy());
         Assert.assertEquals(root, resultB, bracketing.getAbsoluteAccuracy());
-        Assert.assertTrue(bracketing.getEvaluations() < newton.getEvaluations());
+
+        // bracketing solver evaluates only function value, we set the weight to 1
+        final int weightedBracketingEvaluations = bracketing.getEvaluations();
+
+        // Newton-Raphson solver evaluates both function value and derivative, we set the weight to 2
+        final int weightedNewtonEvaluations = 2 * newton.getEvaluations();
+
+        Assert.assertTrue(weightedBracketingEvaluations < weightedNewtonEvaluations);
+
     }
 
     private static abstract class TestFunction implements UnivariateDifferentiable {

Copied: commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/NewtonRaphsonSolverTest.java (from r1377244, commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/NewtonSolverTest.java)
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/NewtonRaphsonSolverTest.java?p2=commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/NewtonRaphsonSolverTest.java&p1=commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/NewtonSolverTest.java&r1=1377244&r2=1377245&rev=1377245&view=diff
==============================================================================
--- commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/NewtonSolverTest.java (original)
+++ commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/NewtonRaphsonSolverTest.java Sat Aug 25 10:06:00 2012
@@ -16,10 +16,7 @@
  */
 package org.apache.commons.math3.analysis.solvers;
 
-import org.apache.commons.math3.analysis.DifferentiableUnivariateFunction;
 import org.apache.commons.math3.analysis.QuinticFunction;
-import org.apache.commons.math3.analysis.UnivariateFunction;
-import org.apache.commons.math3.analysis.differentiation.DerivativeStructure;
 import org.apache.commons.math3.analysis.differentiation.UnivariateDifferentiable;
 import org.apache.commons.math3.analysis.function.Sin;
 import org.apache.commons.math3.util.FastMath;
@@ -30,16 +27,16 @@ import org.junit.Test;
 /**
  * @version $Id$
  */
-public final class NewtonSolverTest {
+public final class NewtonRaphsonSolverTest {
     /**
      *
      */
     @Test
     public void testSinZero() {
-        DifferentiableUnivariateFunction f = new Sin();
+        UnivariateDifferentiable f = new Sin();
         double result;
 
-        NewtonSolver solver = new NewtonSolver();
+        NewtonRaphsonSolver solver = new NewtonRaphsonSolver();
         result = solver.solve(100, f, 3, 4);
         Assert.assertEquals(result, FastMath.PI, solver.getAbsoluteAccuracy());
 
@@ -54,25 +51,10 @@ public final class NewtonSolverTest {
      */
     @Test
     public void testQuinticZero() {
-        final UnivariateDifferentiable q = new QuinticFunction();
-        DifferentiableUnivariateFunction f = new DifferentiableUnivariateFunction() {
-
-            public double value(double x) {
-                return q.value(x);
-            }
-
-            public UnivariateFunction derivative() {
-                return new UnivariateFunction() {
-                    public double value(double x) {
-                        return q.value(new DerivativeStructure(1, 1, 0, x)).getPartialDerivative(1);
-                    }
-                };
-            }
-
-        };
+        final UnivariateDifferentiable f = new QuinticFunction();
         double result;
 
-        NewtonSolver solver = new NewtonSolver();
+        NewtonRaphsonSolver solver = new NewtonRaphsonSolver();
         result = solver.solve(100, f, -0.2, 0.2);
         Assert.assertEquals(result, 0, solver.getAbsoluteAccuracy());
 

Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/NewtonSolverTest.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/NewtonSolverTest.java?rev=1377245&r1=1377244&r2=1377245&view=diff
==============================================================================
--- commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/NewtonSolverTest.java (original)
+++ commons/proper/math/trunk/src/test/java/org/apache/commons/math3/analysis/solvers/NewtonSolverTest.java Sat Aug 25 10:06:00 2012
@@ -29,7 +29,9 @@ import org.junit.Test;
 
 /**
  * @version $Id$
+ * @deprecated
  */
+@Deprecated
 public final class NewtonSolverTest {
     /**
      *