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

Reply via email to