commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gilles (JIRA)" <>
Subject [jira] [Commented] (MATH-631) "RegulaFalsiSolver" failure
Date Tue, 09 Aug 2011 13:52:27 GMT


Gilles commented on MATH-631:



Could you please leave out dismissive qualifiers such as "pointless" and "pathetic" (and,
elsewhere, "silly") and stick to more or less objective arguments?
That will certainly help keep the conversation tone to a courteous level.


Thanks for stating in full details what you meant by "convergence" in this case. However,
it is still a "post-mortem" description.
Do you really expect that the average user of the CM library (a.o. me and the original reporter
of the issue) to be able to figure out that "obvious" explanation just by getting a "TooManyEvalutationsException",
setting the along-x accuracy threshold to a ridiculously high value and still getting the
same exception?
If just for educational purposes, don't you think that it is more instructive to get a specific
hint that the algorithm is stuck, rather than hit the ultimate fail-safe barrier much much
later, and then download the source code and sprinkle the code with "println" statements to
do forensic analysis?


I tried to handle this issue out of respect for a real user who reported an issue that would
have looked suspicious to many CM users. [How many of them would be experts in numerical analysis?]
You do not do me a favour by removing this algorithm; I don't want it to be a _compromise_
(pathetic or not). If you prefer to keep it, I don't care anymore. But, in that case, _you_
should have answered to Axel Kramer to go and read some books on numerical analysis.

> "RegulaFalsiSolver" failure
> ---------------------------
>                 Key: MATH-631
>                 URL:
>             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:


View raw message