From: stevenj Date: Sun, 13 Feb 2011 02:53:21 +0000 (-0500) Subject: handle lb == ub in MMA (bugfix) X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=bfd94fac4df021c3b715f59bae49522fb6954012;p=nlopt.git handle lb == ub in MMA (bugfix) darcs-hash:20110213025321-c8de0-46c1f9a82b96241a49ba7f8abaad8c240d7788f2.gz --- diff --git a/mma/mma.c b/mma/mma.c index f3db384..044822b 100644 --- a/mma/mma.c +++ b/mma/mma.c @@ -96,6 +96,11 @@ static double dual_func(unsigned m, const double *y, double *grad, void *d_) (v/u) sigma^2 (-1 + sqrt(1 - (u / v sigma)^2)) (which goes to zero as u -> 0). */ + if (sigma[j] == 0) { /* special case for lb[i] == ub[i] dims, dx=0 */ + xcur[j] = x[j]; + continue; + } + u = dfdx[j]; v = fabs(dfdx[j]) * sigma[j] + 0.5 * rho; for (i = 0; i < m; ++i) if (!isnan(fcval[i])) {