aboutsummaryrefslogtreecommitdiff
path: root/src/fit.c
diff options
context:
space:
mode:
authortlatorre <tlatorre@uchicago.edu>2018-08-31 13:26:19 -0500
committertlatorre <tlatorre@uchicago.edu>2018-08-31 13:26:19 -0500
commit8c9e0671ed475a8a73d755c9e0ba17fad9d518ad (patch)
tree212935d4964b00739337ede22002a58676944b63 /src/fit.c
parentb6e99d74e6e3f4b9cb7e6660a8649b226cf90a21 (diff)
downloadsddm-8c9e0671ed475a8a73d755c9e0ba17fad9d518ad.tar.gz
sddm-8c9e0671ed475a8a73d755c9e0ba17fad9d518ad.tar.bz2
sddm-8c9e0671ed475a8a73d755c9e0ba17fad9d518ad.zip
update the criterion for the fit convergence
Diffstat (limited to 'src/fit.c')
-rw-r--r--src/fit.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/fit.c b/src/fit.c
index 8b17062..66f9a12 100644
--- a/src/fit.c
+++ b/src/fit.c
@@ -127,10 +127,14 @@ int fit_event(event *ev, double *xopt, double *fmin)
do {
*fmin = fval;
+ memcpy(xopt,x,sizeof(x));
rv = nlopt_optimize(opt,x,&fval);
- } while (fabs(fval-*fmin) > 1e-5);
+ } while (fval < *fmin && fabs(fval-*fmin) > 1e-5);
- memcpy(xopt,x,sizeof(x));
+ if (fval < *fmin) {
+ *fmin = fval;
+ memcpy(xopt,x,sizeof(x));
+ }
nlopt_destroy(opt);