--- mpfit.c.orig 2012-10-01 00:30:51.533258108 +0100
+++ mpfit.c 2012-10-01 01:46:42.106809470 +0100
@@ -322,7 +322,7 @@
if (config->stepfactor > 0) conf.stepfactor = config->stepfactor;
if (config->nprint >= 0) conf.nprint = config->nprint;
if (config->epsfcn > 0) conf.epsfcn = config->epsfcn;
- if (config->maxiter > 0) conf.maxiter = config->maxiter;
+ if (config->maxiter >= 0) conf.maxiter = config->maxiter;
if (config->douserscale != 0) conf.douserscale = config->douserscale;
if (config->covtol > 0) conf.covtol = config->covtol;
if (config->nofinitecheck > 0) conf.nofinitecheck = config->nofinitecheck;
@@ -624,7 +624,10 @@
*/
if (gnorm <= conf.gtol) info = MP_OK_DIR;
if (info != 0) goto L300;
- if (conf.maxiter == 0) goto L300;
+ if (conf.maxiter == 0) {
+ info = MP_MAXITER;
+ goto L300;
+ }
/*
* rescale if necessary.