At Fri, 5 Mar 2010 20:38:30 -0500 (EST), Gallego Bonet, Guillermo wrote: > I think it would be wise to replace, inside function > intermediate_point(), the condition > > if (fb >= fa && stepb > 0.0) > > by > > if (fb >= fa && stepb > STEP_TOL) > > where one could define the tolerance to be any value related to the > machine precision. I used > > #define STEP_TOL 1e-7 > > I tested the Fletcher-Reeves and PR algorithms ( > gsl_multimin_fdfminimizer_conjugate_fr(), ... ) to minimize an > expensive cost function in R^4 and I was surprised that the function > gsl_multimin_fdfminimizer_iterate() would take so long to return. I > found out it was because the line minimization routine was testing > many smaller and smaller steps (up to 10^-186 !!, which I believe is > totally unnecessary in any practical situation).
Thanks for the bug report. I agree the test could be stricter -- I think the correct approach is to return when the step is small enough that it does not alter the trial vector. -- Brian Gough GNU Scientific Library - http://www.gnu.org/software/gsl/ _______________________________________________ Bug-gsl mailing list [email protected] http://lists.gnu.org/mailman/listinfo/bug-gsl
