commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Luc Maisonobe (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (MATH-464) LegendreGaussIntegrator ignores defaultMaximalIterationCount and does 38 million iterations
Date Tue, 23 Aug 2011 22:39:29 GMT

     [ https://issues.apache.org/jira/browse/MATH-464?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Luc Maisonobe resolved MATH-464.
--------------------------------

    Resolution: Fixed

Fixed in subversion repository as of r1160914.

The API of the integrators has been changed for consistency with solvers API. Now the main
convergence parameters are set in the constructor and remain fixed, but a maximal number of
function evaluation must be provided at each call to the integration method.

Thanks for the report

> LegendreGaussIntegrator ignores defaultMaximalIterationCount and does 38 million iterations
> -------------------------------------------------------------------------------------------
>
>                 Key: MATH-464
>                 URL: https://issues.apache.org/jira/browse/MATH-464
>             Project: Commons Math
>          Issue Type: Bug
>    Affects Versions: 2.1
>            Reporter: Michael Borcherds
>            Priority: Critical
>             Fix For: 3.0
>
>   Original Estimate: 3h
>  Remaining Estimate: 3h
>
> The following code results in count = 37801710 which is effectively an infinite loop
for typical functions we are using
> (in GeoGebra)
> The argument defaultMaximalIterationCount = 100 is being ignored
> This is the version we are using:
> http://www.geogebra.org/trac/browser/trunk/geogebra/org/apache/commons/math/analysis/integration/LegendreGaussIntegrator.java
>     	LegendreGaussIntegrator gauss = new LegendreGaussIntegrator(5, 100);
>     
> 	try {
> 		double result = gauss.integrate(new testFun(), -10, 0.32462367623786328);
> 	} catch (Exception ee) {
> 		ee.printStackTrace();
> 	}
> class testFun implements UnivariateRealFunction {
>     public double value(double x) throws FunctionEvaluationException {
>     	count ++;
>         if (x>=0 && x<=5) return 0.2; else return 0;
>     }
> }

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

        

Mime
View raw message