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 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.