Return-Path: Delivered-To: apmail-commons-issues-archive@minotaur.apache.org Received: (qmail 96651 invoked from network); 19 Nov 2010 07:59:09 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 19 Nov 2010 07:59:09 -0000 Received: (qmail 52572 invoked by uid 500); 19 Nov 2010 07:59:41 -0000 Delivered-To: apmail-commons-issues-archive@commons.apache.org Received: (qmail 52277 invoked by uid 500); 19 Nov 2010 07:59:40 -0000 Mailing-List: contact issues-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: issues@commons.apache.org Delivered-To: mailing list issues@commons.apache.org Received: (qmail 52267 invoked by uid 99); 19 Nov 2010 07:59:39 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 19 Nov 2010 07:59:39 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.22] (HELO thor.apache.org) (140.211.11.22) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 19 Nov 2010 07:59:37 +0000 Received: from thor (localhost [127.0.0.1]) by thor.apache.org (8.13.8+Sun/8.13.8) with ESMTP id oAJ7xFOc011723 for ; Fri, 19 Nov 2010 07:59:16 GMT Message-ID: <27211855.192271290153555950.JavaMail.jira@thor> Date: Fri, 19 Nov 2010 02:59:15 -0500 (EST) From: "Luc Maisonobe (JIRA)" To: issues@commons.apache.org Subject: [jira] Commented: (MATH-439) Refactoring of solvers (package "analysis.solvers") In-Reply-To: <18591924.45371289567236619.JavaMail.jira@thor> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/MATH-439?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12933714#action_12933714 ] Luc Maisonobe commented on MATH-439: ------------------------------------ Our exception handling is already quite complex now, so I'd rather slow the pace on this and wait for users feedback before going further. For DormandPrince, yes, raising the threshold is an appropriate fix. This test belongs to the non-regression kind, it's not a mandatory threshold defined from earlier precise settings, so updating it when the code changes is often fair. The problem is that there is no general relationship between the local error for which we configure a threshold and the global error we get at the end. This is still a research subject. The test is here mainly as a safety check to avoid introducing large regression without noticing them. > Refactoring of solvers (package "analysis.solvers") > --------------------------------------------------- > > Key: MATH-439 > URL: https://issues.apache.org/jira/browse/MATH-439 > Project: Commons Math > Issue Type: Improvement > Reporter: Gilles > Priority: Minor > Fix For: 3.0 > > Attachments: AbstractUnivariateRealSolver.java > > > The classes in package "analysis.solvers" could be refactored similarly to what was done for package {{optimization}}. > * Replace {{MaxIterationsExceededException}} with {{TooManyEvaluationsException}}: > Apart from the class {{MaxIterationsExceededException}} being deprecated, this approach makes it difficult to compare different algorithms: While the concept of iteration is algorithm-dependent, the user is probably mostly interested in the number of function evaluations. > * Implement the method {{solve}} in the base class ({{UnivariateRealSolverImpl}}) and define an abstract method {{doSolve}} to be implemented in derived classes. This method would then use a new {{computeObjectiveFunction}} method that will take care of the counting of the function evaluations. > * Remove "protected" fields (the root is unnecessary since it is returned by {{solve}}). Arguingly the function value is also not very useful (as we know what it should be), except for debugging purposes (in which case, it might not be a problem to call the function's {{value}} method once more). > * Remove the tolerance setter (accuracy) and make the corresponding fields "final". -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.