From bfd94fac4df021c3b715f59bae49522fb6954012 Mon Sep 17 00:00:00 2001 From: stevenj Date: Sat, 12 Feb 2011 21:53:21 -0500 Subject: [PATCH] handle lb == ub in MMA (bugfix) darcs-hash:20110213025321-c8de0-46c1f9a82b96241a49ba7f8abaad8c240d7788f2.gz --- mma/mma.c | 5 +++++ 1 file changed, 5 insertions(+) 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])) { -- 2.30.2