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

Phil Steitz commented on MATH-631:
----------------------------------

This is a pointless discussion.  Gilles, you obviously don't share the views 
that Luc and I have on implementing standard algorithms or even what the 
meaning of a numerical algorithm is. Some algorithms perform well for some 
classes of problems and not others.  There is an art to choosing the right 
algorithm for the problem instance at hand.  If we modify our implementations 
to try to work around shortcomings of the algorithms we implement, then we are 
not implementing the standard algorithms, and we need to document exactly what 
it is that we are implementing, because in this case we are actually making it 
harder for users to choose (because we are not longer advertising standard 
numerics).  This is what I meant when I said it is both harder for us (because 
we have to document the hacks and non-standard contracts) and users (because 
the standard numerical analysis theory that they may be using to choose among 
implementations will no longer apply).  It is, IMO, a "pathetic compromise" to 
drop the implementation because we can't agree on what it means to implement 
the algorithm. So be it. Lets drop it and resolve this issue as "fixed."

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