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.

Reply via email to