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 2011/06/25 00:36:44 UTC

svn commit: r1139455 - in /commons/proper/math/trunk/src: main/java/org/apache/commons/math/analysis/solvers/ test/java/org/apache/commons/math/analysis/solvers/

Author: erans
Date: Fri Jun 24 22:36:43 2011
New Revision: 1139455

URL: http://svn.apache.org/viewvc?rev=1139455&view=rev
Log:
MATH-599
Inserted "BaseBracketedSecantSolver" into the secant-based solvers hierarchy.
Renamed "SecantBase" to "BaseSecantSolver".

Added:
    commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/BaseBracketedSecantSolver.java   (with props)
    commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/BaseSecantSolver.java
      - copied, changed from r1139126, commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/SecantBase.java
    commons/proper/math/trunk/src/test/java/org/apache/commons/math/analysis/solvers/BaseSecantSolverTest.java
      - copied, changed from r1139250, commons/proper/math/trunk/src/test/java/org/apache/commons/math/analysis/solvers/SecantBaseTest.java
Removed:
    commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/SecantBase.java
    commons/proper/math/trunk/src/test/java/org/apache/commons/math/analysis/solvers/SecantBaseTest.java
Modified:
    commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/IllinoisSolver.java
    commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/PegasusSolver.java
    commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/RegulaFalsiSolver.java
    commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/SecantSolver.java
    commons/proper/math/trunk/src/test/java/org/apache/commons/math/analysis/solvers/IllinoisSolverTest.java
    commons/proper/math/trunk/src/test/java/org/apache/commons/math/analysis/solvers/PegasusSolverTest.java
    commons/proper/math/trunk/src/test/java/org/apache/commons/math/analysis/solvers/RegulaFalsiSolverTest.java
    commons/proper/math/trunk/src/test/java/org/apache/commons/math/analysis/solvers/SecantSolverTest.java

Added: commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/BaseBracketedSecantSolver.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/BaseBracketedSecantSolver.java?rev=1139455&view=auto
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/BaseBracketedSecantSolver.java (added)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/BaseBracketedSecantSolver.java Fri Jun 24 22:36:43 2011
@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.commons.math.analysis.solvers;
+
+/**
+ * Base class for <em>Secant</em> methods that guarantee convergence
+ * by maintaining a {@link BracketedSolution bracketed solution}.
+ *
+ * @since 3.0
+ * @version $Id$
+ */
+public class BaseBracketedSecantSolver extends BaseSecantSolver
+    implements BracketedSolution {
+    /**
+     * Construct a solver with default accuracy (1e-6).
+     *
+     * @param method Method.
+     */
+    protected BaseBracketedSecantSolver(Method method) {
+        super(DEFAULT_ABSOLUTE_ACCURACY, method);
+    }
+
+    /**
+     * Construct a solver.
+     *
+     * @param absoluteAccuracy absolute accuracy
+     * @param method Method.
+     */
+    protected BaseBracketedSecantSolver(final double absoluteAccuracy,
+                                        Method method) {
+        super(absoluteAccuracy, method);
+    }
+
+    /**
+     * Construct a solver.
+     *
+     * @param relativeAccuracy relative accuracy
+     * @param absoluteAccuracy absolute accuracy
+     * @param method Method.
+     */
+    protected BaseBracketedSecantSolver(final double relativeAccuracy,
+                                        final double absoluteAccuracy,
+                                        Method method) {
+        super(relativeAccuracy, absoluteAccuracy, method);
+    }
+
+    /** {@inheritDoc} */
+    public AllowedSolutions getAllowedSolutions() {
+        return allowedSolutions;
+    }
+
+    /** {@inheritDoc} */
+    public void setAllowedSolutions(final AllowedSolutions allowedSolutions) {
+        this.allowedSolutions = allowedSolutions;
+    }
+}

Propchange: commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/BaseBracketedSecantSolver.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/BaseSecantSolver.java (from r1139126, commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/SecantBase.java)
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/BaseSecantSolver.java?p2=commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/BaseSecantSolver.java&p1=commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/SecantBase.java&r1=1139126&r2=1139455&rev=1139455&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/SecantBase.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/BaseSecantSolver.java Fri Jun 24 22:36:43 2011
@@ -41,7 +41,7 @@ import org.apache.commons.math.exception
  * @since 3.0
  * @version $Id$
  */
-public abstract class SecantBase extends AbstractUnivariateRealSolver {
+public abstract class BaseSecantSolver extends AbstractUnivariateRealSolver {
     /** Default absolute accuracy. */
     protected static final double DEFAULT_ABSOLUTE_ACCURACY = 1e-6;
     /** The kinds of solutions that the algorithm may accept. */
@@ -55,7 +55,7 @@ public abstract class SecantBase extends
      * @param absoluteAccuracy absolute accuracy
      * @param method <em>Secant</em>-based root-finding method to use
      */
-    protected SecantBase(final double absoluteAccuracy, final Method method) {
+    protected BaseSecantSolver(final double absoluteAccuracy, final Method method) {
         super(absoluteAccuracy);
         this.method = method;
     }
@@ -67,9 +67,9 @@ public abstract class SecantBase extends
      * @param absoluteAccuracy absolute accuracy
      * @param method <em>Secant</em>-based root-finding method to use
      */
-    protected SecantBase(final double relativeAccuracy,
-                         final double absoluteAccuracy,
-                         final Method method) {
+    protected BaseSecantSolver(final double relativeAccuracy,
+                               final double absoluteAccuracy,
+                               final Method method) {
         super(relativeAccuracy, absoluteAccuracy);
         this.method = method;
     }

Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/IllinoisSolver.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/IllinoisSolver.java?rev=1139455&r1=1139454&r2=1139455&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/IllinoisSolver.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/IllinoisSolver.java Fri Jun 24 22:36:43 2011
@@ -38,7 +38,7 @@ package org.apache.commons.math.analysis
  * @since 3.0
  * @version $Id$
  */
-public class IllinoisSolver extends SecantBase implements BracketedSolution {
+public class IllinoisSolver extends BaseBracketedSecantSolver {
     /** Construct a solver with default accuracy (1e-6). */
     public IllinoisSolver() {
         super(DEFAULT_ABSOLUTE_ACCURACY, Method.ILLINOIS);
@@ -63,14 +63,4 @@ public class IllinoisSolver extends Seca
                           final double absoluteAccuracy) {
         super(relativeAccuracy, absoluteAccuracy, Method.ILLINOIS);
     }
-
-    /** {@inheritDoc} */
-    public AllowedSolutions getAllowedSolutions() {
-        return allowedSolutions;
-    }
-
-    /** {@inheritDoc} */
-    public void setAllowedSolutions(final AllowedSolutions allowedSolutions) {
-        this.allowedSolutions = allowedSolutions;
-    }
 }

Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/PegasusSolver.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/PegasusSolver.java?rev=1139455&r1=1139454&r2=1139455&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/PegasusSolver.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/PegasusSolver.java Fri Jun 24 22:36:43 2011
@@ -40,7 +40,7 @@ package org.apache.commons.math.analysis
  * @since 3.0
  * @version $Id$
  */
-public class PegasusSolver extends SecantBase implements BracketedSolution {
+public class PegasusSolver extends BaseBracketedSecantSolver {
     /** Construct a solver with default accuracy (1e-6). */
     public PegasusSolver() {
         super(DEFAULT_ABSOLUTE_ACCURACY, Method.PEGASUS);
@@ -65,14 +65,4 @@ public class PegasusSolver extends Secan
                          final double absoluteAccuracy) {
         super(relativeAccuracy, absoluteAccuracy, Method.PEGASUS);
     }
-
-    /** {@inheritDoc} */
-    public AllowedSolutions getAllowedSolutions() {
-        return allowedSolutions;
-    }
-
-    /** {@inheritDoc} */
-    public void setAllowedSolutions(final AllowedSolutions allowedSolutions) {
-        this.allowedSolutions = allowedSolutions;
-    }
 }

Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/RegulaFalsiSolver.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/RegulaFalsiSolver.java?rev=1139455&r1=1139454&r2=1139455&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/RegulaFalsiSolver.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/RegulaFalsiSolver.java Fri Jun 24 22:36:43 2011
@@ -35,7 +35,7 @@ package org.apache.commons.math.analysis
  * @since 3.0
  * @version $Id$
  */
-public class RegulaFalsiSolver extends SecantBase implements BracketedSolution {
+public class RegulaFalsiSolver extends BaseBracketedSecantSolver {
     /** Construct a solver with default accuracy (1e-6). */
     public RegulaFalsiSolver() {
         super(DEFAULT_ABSOLUTE_ACCURACY, Method.REGULA_FALSI);
@@ -60,14 +60,4 @@ public class RegulaFalsiSolver extends S
                              final double absoluteAccuracy) {
         super(relativeAccuracy, absoluteAccuracy, Method.REGULA_FALSI);
     }
-
-    /** {@inheritDoc} */
-    public AllowedSolutions getAllowedSolutions() {
-        return allowedSolutions;
-    }
-
-    /** {@inheritDoc} */
-    public void setAllowedSolutions(final AllowedSolutions allowedSolutions) {
-        this.allowedSolutions = allowedSolutions;
-    }
 }

Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/SecantSolver.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/SecantSolver.java?rev=1139455&r1=1139454&r2=1139455&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/SecantSolver.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/SecantSolver.java Fri Jun 24 22:36:43 2011
@@ -36,7 +36,7 @@ package org.apache.commons.math.analysis
  *
  * @version $Id$
  */
-public class SecantSolver extends SecantBase {
+public class SecantSolver extends BaseSecantSolver {
     /** Construct a solver with default accuracy (1e-6). */
     public SecantSolver() {
         super(DEFAULT_ABSOLUTE_ACCURACY, Method.SECANT);

Copied: commons/proper/math/trunk/src/test/java/org/apache/commons/math/analysis/solvers/BaseSecantSolverTest.java (from r1139250, commons/proper/math/trunk/src/test/java/org/apache/commons/math/analysis/solvers/SecantBaseTest.java)
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/analysis/solvers/BaseSecantSolverTest.java?p2=commons/proper/math/trunk/src/test/java/org/apache/commons/math/analysis/solvers/BaseSecantSolverTest.java&p1=commons/proper/math/trunk/src/test/java/org/apache/commons/math/analysis/solvers/SecantBaseTest.java&r1=1139250&r2=1139455&rev=1139455&view=diff
==============================================================================
--- commons/proper/math/trunk/src/test/java/org/apache/commons/math/analysis/solvers/SecantBaseTest.java (original)
+++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/analysis/solvers/BaseSecantSolverTest.java Fri Jun 24 22:36:43 2011
@@ -27,11 +27,12 @@ import org.junit.Assert;
 import org.junit.Test;
 
 /**
- * Base class for {@link SecantBase} derived root-finding algorithms tests.
+ * Base class for root-finding algorithms tests derived from
+ * {@link BaseSecantSolver}.
  *
  * @version $Id$
  */
-public abstract class SecantBaseTest {
+public abstract class BaseSecantSolverTest {
     /** Returns the solver to use to perform the tests.
      * @return the solver to use to perform the tests
      */

Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/analysis/solvers/IllinoisSolverTest.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/analysis/solvers/IllinoisSolverTest.java?rev=1139455&r1=1139454&r2=1139455&view=diff
==============================================================================
--- commons/proper/math/trunk/src/test/java/org/apache/commons/math/analysis/solvers/IllinoisSolverTest.java (original)
+++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/analysis/solvers/IllinoisSolverTest.java Fri Jun 24 22:36:43 2011
@@ -22,7 +22,7 @@ package org.apache.commons.math.analysis
  *
  * @version $Id$
  */
-public final class IllinoisSolverTest extends SecantBaseTest {
+public final class IllinoisSolverTest extends BaseSecantSolverTest {
     /** {@inheritDoc} */
     protected UnivariateRealSolver getSolver() {
         return new IllinoisSolver();

Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/analysis/solvers/PegasusSolverTest.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/analysis/solvers/PegasusSolverTest.java?rev=1139455&r1=1139454&r2=1139455&view=diff
==============================================================================
--- commons/proper/math/trunk/src/test/java/org/apache/commons/math/analysis/solvers/PegasusSolverTest.java (original)
+++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/analysis/solvers/PegasusSolverTest.java Fri Jun 24 22:36:43 2011
@@ -22,7 +22,7 @@ package org.apache.commons.math.analysis
  *
  * @version $Id$
  */
-public final class PegasusSolverTest extends SecantBaseTest {
+public final class PegasusSolverTest extends BaseSecantSolverTest {
     /** {@inheritDoc} */
     protected UnivariateRealSolver getSolver() {
         return new PegasusSolver();

Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/analysis/solvers/RegulaFalsiSolverTest.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/analysis/solvers/RegulaFalsiSolverTest.java?rev=1139455&r1=1139454&r2=1139455&view=diff
==============================================================================
--- commons/proper/math/trunk/src/test/java/org/apache/commons/math/analysis/solvers/RegulaFalsiSolverTest.java (original)
+++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/analysis/solvers/RegulaFalsiSolverTest.java Fri Jun 24 22:36:43 2011
@@ -22,7 +22,7 @@ package org.apache.commons.math.analysis
  *
  * @version $Id$
  */
-public final class RegulaFalsiSolverTest extends SecantBaseTest {
+public final class RegulaFalsiSolverTest extends BaseSecantSolverTest {
     /** {@inheritDoc} */
     protected UnivariateRealSolver getSolver() {
         return new RegulaFalsiSolver();

Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/analysis/solvers/SecantSolverTest.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/analysis/solvers/SecantSolverTest.java?rev=1139455&r1=1139454&r2=1139455&view=diff
==============================================================================
--- commons/proper/math/trunk/src/test/java/org/apache/commons/math/analysis/solvers/SecantSolverTest.java (original)
+++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/analysis/solvers/SecantSolverTest.java Fri Jun 24 22:36:43 2011
@@ -22,7 +22,7 @@ package org.apache.commons.math.analysis
  *
  * @version $Id$
  */
-public final class SecantSolverTest extends SecantBaseTest {
+public final class SecantSolverTest extends BaseSecantSolverTest {
     /** {@inheritDoc} */
     protected UnivariateRealSolver getSolver() {
         return new SecantSolver();