[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug-gsl] [bug #26871] inconsistent error detection in non-linear fittin
Mateus Araújo Santos
[Bug-gsl] [bug #26871] inconsistent error detection in non-linear fitting
Mon, 22 Jun 2009 21:09:28 +0000
Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:184.108.40.206) Gecko/2009030814 Iceweasel/3.0.9 (Debian-3.0.9-1)
Summary: inconsistent error detection in non-linear fitting
Project: GNU Scientific Library
Submitted by: masantos
Submitted on: Mon Jun 22 21:09:26 2009
Category: Runtime error
Severity: 3 - Normal
Operating System: debian squeeze
Assigned to: None
Discussion Lock: Any
In fixing a bug with QtiPlot, I found myself in the need of asking gsl to
abort the fitting process if an error occurred. Unfortunately, the error
detection is not uniformly handled, and could be made to work satisfactorily
in only one case, in the iterations of the Levenberg-Masquardt algorithm.
To be specific, the function set() in lmset.c does not check for error status
in the evaluation of the points.
GSL_MULTIFIT_FN_EVAL_F_DF (fdf, x, f, J);
int status = GSL_MULTIFIT_FN_EVAL_F_DF (fdf, x_trial, J);
as it's done correctly in the function iterate in lmiterate.c
as for the Nelder-Mead simplex, there's no way (that I could find ;) of
passing an error status from the iterator to GSL. the function call is
val = GSL_MULTIMIN_FN_EVAL (f, x);
... error ...
in both nmsimplex_iterate() and nmsimplex_set(), so the only way I figured to
signalize an error is to pass an inf to val, so that the process will abort.
Unfortunately, this crashes QtiPlot. There should be a way to pass a gsl
status (in my case, GSL_ESING), as it's done in the Levenberg-Marquardt case.
Reply to this item at:
Message sent via/by Savannah
- [Bug-gsl] [bug #26871] inconsistent error detection in non-linear fitting,
Mateus Araújo Santos <=