[ 
https://issues.apache.org/jira/browse/MATH-631?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13080690#comment-13080690
 ] 

Gilles commented on MATH-631:
-----------------------------

[My comment starting with "I understand what you say." was an answer to Luc. I 
hadn't read Phil's previous one which was posted while I was writing mine.]

I agree that it is better not to change the standard algorithm, as I indicated 
in my first comment.
The fix which I'm proposing is not an algorithm change, it is an implementation 
detail similar to the many hundreds checks performed in CM. Just it is not a 
precondition test. It adequately indicates that something went wrong and can 
help the user figure out what it was. It makes the implementation more robust.


> "RegulaFalsiSolver" failure
> ---------------------------
>
>                 Key: MATH-631
>                 URL: https://issues.apache.org/jira/browse/MATH-631
>             Project: Commons Math
>          Issue Type: Bug
>            Reporter: Gilles
>             Fix For: 3.0
>
>
> The following unit test:
> {code}
> @Test
> public void testBug() {
>     final UnivariateRealFunction f = new UnivariateRealFunction() {
>             @Override
>             public double value(double x) {
>                 return Math.exp(x) - Math.pow(Math.PI, 3.0);
>             }
>         };
>     UnivariateRealSolver solver = new RegulaFalsiSolver();
>     double root = solver.solve(100, f, 1, 10);
> }
> {code}
> fails with
> {noformat}
> illegal state: maximal count (100) exceeded: evaluations
> {noformat}
> Using "PegasusSolver", the answer is found after 17 evaluations.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to