Return-Path: X-Original-To: apmail-commons-commits-archive@minotaur.apache.org Delivered-To: apmail-commons-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id D6CDE6255 for ; Sun, 10 Jul 2011 13:49:00 +0000 (UTC) Received: (qmail 22734 invoked by uid 500); 10 Jul 2011 13:49:00 -0000 Delivered-To: apmail-commons-commits-archive@commons.apache.org Received: (qmail 22624 invoked by uid 500); 10 Jul 2011 13:48:59 -0000 Mailing-List: contact commits-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@commons.apache.org Delivered-To: mailing list commits@commons.apache.org Received: (qmail 22617 invoked by uid 99); 10 Jul 2011 13:48:58 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 10 Jul 2011 13:48:58 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 10 Jul 2011 13:48:57 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 358A82388906 for ; Sun, 10 Jul 2011 13:48:37 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1144861 - in /commons/proper/math/trunk/src: main/java/org/apache/commons/math/analysis/solvers/ test/java/org/apache/commons/math/analysis/solvers/ Date: Sun, 10 Jul 2011 13:48:37 -0000 To: commits@commons.apache.org From: luc@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20110710134837.358A82388906@eris.apache.org> Author: luc Date: Sun Jul 10 13:48:36 2011 New Revision: 1144861 URL: http://svn.apache.org/viewvc?rev=1144861&view=rev Log: added constructors with function value accuracy Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/BaseSecantSolver.java 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/test/java/org/apache/commons/math/analysis/solvers/BaseSecantSolverAbstractTest.java Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/BaseSecantSolver.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/BaseSecantSolver.java?rev=1144861&r1=1144860&r2=1144861&view=diff ============================================================================== --- commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/BaseSecantSolver.java (original) +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/analysis/solvers/BaseSecantSolver.java Sun Jul 10 13:48:36 2011 @@ -85,6 +85,23 @@ public abstract class BaseSecantSolver this.method = method; } + /** + * Construct a solver. + * + * @param relativeAccuracy Maximum relative error. + * @param absoluteAccuracy Maximum absolute error. + * @param functionValueAccuracy Maximum function value error. + * @param method Secant-based root-finding method to use + */ + protected BaseSecantSolver(final double relativeAccuracy, + final double absoluteAccuracy, + final double functionValueAccuracy, + final Method method) { + super(relativeAccuracy, absoluteAccuracy, functionValueAccuracy); + this.allowed = AllowedSolutions.ANY_SIDE; + this.method = method; + } + /** {@inheritDoc} */ public double solve(final int maxEval, final UnivariateRealFunction f, final double min, final double max, 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=1144861&r1=1144860&r2=1144861&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 Sun Jul 10 13:48:36 2011 @@ -17,6 +17,7 @@ package org.apache.commons.math.analysis.solvers; + /** * Implements the Illinois method for root-finding (approximating * a zero of a univariate real function). It is a modified @@ -64,4 +65,18 @@ public class IllinoisSolver extends Base final double absoluteAccuracy) { super(relativeAccuracy, absoluteAccuracy, Method.ILLINOIS); } + + /** + * Construct a solver. + * + * @param relativeAccuracy relative accuracy + * @param absoluteAccuracy absolute accuracy + * @param functionValueAccuracy Maximum function value error. + */ + public IllinoisSolver(final double relativeAccuracy, + final double absoluteAccuracy, + final double functionValueAccuracy) { + super(relativeAccuracy, absoluteAccuracy, functionValueAccuracy, Method.PEGASUS); + } + } 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=1144861&r1=1144860&r2=1144861&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 Sun Jul 10 13:48:36 2011 @@ -66,4 +66,18 @@ public class PegasusSolver extends BaseS final double absoluteAccuracy) { super(relativeAccuracy, absoluteAccuracy, Method.PEGASUS); } + + /** + * Construct a solver. + * + * @param relativeAccuracy relative accuracy + * @param absoluteAccuracy absolute accuracy + * @param functionValueAccuracy Maximum function value error. + */ + public PegasusSolver(final double relativeAccuracy, + final double absoluteAccuracy, + final double functionValueAccuracy) { + super(relativeAccuracy, absoluteAccuracy, functionValueAccuracy, Method.PEGASUS); + } + } 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=1144861&r1=1144860&r2=1144861&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 Sun Jul 10 13:48:36 2011 @@ -17,6 +17,7 @@ package org.apache.commons.math.analysis.solvers; + /** * Implements the Regula Falsi or False position method for * root-finding (approximating a zero of a univariate real function). It is a @@ -61,4 +62,18 @@ public class RegulaFalsiSolver extends B final double absoluteAccuracy) { super(relativeAccuracy, absoluteAccuracy, Method.REGULA_FALSI); } + + /** + * Construct a solver. + * + * @param relativeAccuracy relative accuracy + * @param absoluteAccuracy absolute accuracy + * @param functionValueAccuracy Maximum function value error. + */ + public RegulaFalsiSolver(final double relativeAccuracy, + final double absoluteAccuracy, + final double functionValueAccuracy) { + super(relativeAccuracy, absoluteAccuracy, functionValueAccuracy, Method.PEGASUS); + } + } Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/analysis/solvers/BaseSecantSolverAbstractTest.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/analysis/solvers/BaseSecantSolverAbstractTest.java?rev=1144861&r1=1144860&r2=1144861&view=diff ============================================================================== --- commons/proper/math/trunk/src/test/java/org/apache/commons/math/analysis/solvers/BaseSecantSolverAbstractTest.java (original) +++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/analysis/solvers/BaseSecantSolverAbstractTest.java Sun Jul 10 13:48:36 2011 @@ -247,7 +247,8 @@ public abstract class BaseSecantSolverAb return Double.NaN; } PegasusSolver bracketing = - new PegasusSolver(solver.getRelativeAccuracy(), solver.getAbsoluteAccuracy()); + new PegasusSolver(solver.getRelativeAccuracy(), solver.getAbsoluteAccuracy(), + solver.getFunctionValueAccuracy()); return UnivariateRealSolverUtils.forceSide(maxEval - solver.getEvaluations(), f, bracketing, baseRoot, left, right, allowedSolutions);