@@ -177,7 +177,12 @@ function DiffEqBase.OptimizationProblem{iip}(sys::OptimizationSystem, u0map,
177
177
expression = Val{false })
178
178
179
179
obj_expr = toexpr (equations (sys))
180
- pairs_arr = p isa SciMLBase. NullParameters ? [Symbol (_s) => Expr (:ref , :x , i) for (i, _s) in enumerate (dvs)] : [[Symbol (_s) => Expr (:ref , :x , i) for (i, _s) in enumerate (dvs)]. .. , [Symbol (_p) => p[i] for (i, _p) in enumerate (ps)]. .. ]
180
+ pairs_arr = p isa SciMLBase. NullParameters ?
181
+ [Symbol (_s) => Expr (:ref , :x , i) for (i, _s) in enumerate (dvs)] :
182
+ [
183
+ [Symbol (_s) => Expr (:ref , :x , i) for (i, _s) in enumerate (dvs)]. .. ,
184
+ [Symbol (_p) => p[i] for (i, _p) in enumerate (ps)]. .. ,
185
+ ]
181
186
rep_pars_vals! (obj_expr, pairs_arr)
182
187
if grad
183
188
grad_oop, grad_iip = generate_gradient (sys, checkbounds = checkbounds,
@@ -208,10 +213,11 @@ function DiffEqBase.OptimizationProblem{iip}(sys::OptimizationSystem, u0map,
208
213
209
214
if length (sys. constraints) > 0
210
215
@named cons_sys = NonlinearSystem (sys. constraints, dvs, ps)
211
- cons = generate_function (cons_sys, checkbounds = checkbounds, linenumbers = linenumbers,
212
- expression = Val{false })[1 ]
213
- cons_j = generate_jacobian (cons_sys; expression= Val{false }, sparse= sparse)[2 ]
214
- cons_h = generate_hessian (cons_sys; expression = Val{false }, sparse = sparse)[2 ]
216
+ cons = generate_function (cons_sys, checkbounds = checkbounds,
217
+ linenumbers = linenumbers,
218
+ expression = Val{false })[1 ]
219
+ cons_j = generate_jacobian (cons_sys; expression = Val{false }, sparse = sparse)[2 ]
220
+ cons_h = generate_hessian (cons_sys; expression = Val{false }, sparse = sparse)[2 ]
215
221
216
222
cons_expr = toexpr (equations (cons_sys))
217
223
rep_pars_vals! .(cons_expr, Ref (pairs_arr))
@@ -225,24 +231,24 @@ function DiffEqBase.OptimizationProblem{iip}(sys::OptimizationSystem, u0map,
225
231
end
226
232
227
233
_f = DiffEqBase. OptimizationFunction {iip} (f,
228
- SciMLBase. NoAD ();
229
- grad = _grad,
230
- hess = _hess,
231
- hess_prototype = hess_prototype,
232
- cons = cons,
233
- cons_j = cons_j,
234
- cons_h = cons_h,
235
- cons_jac_prototype = cons_jac_prototype,
236
- cons_hess_prototype = cons_hess_prototype,
237
- expr = obj_expr,
238
- cons_expr = cons_expr)
234
+ SciMLBase. NoAD ();
235
+ grad = _grad,
236
+ hess = _hess,
237
+ hess_prototype = hess_prototype,
238
+ cons = cons,
239
+ cons_j = cons_j,
240
+ cons_h = cons_h,
241
+ cons_jac_prototype = cons_jac_prototype,
242
+ cons_hess_prototype = cons_hess_prototype,
243
+ expr = obj_expr,
244
+ cons_expr = cons_expr)
239
245
else
240
246
_f = DiffEqBase. OptimizationFunction {iip} (f,
241
- SciMLBase. NoAD ();
242
- grad = _grad,
243
- hess = _hess,
244
- hess_prototype = hess_prototype,
245
- expr = obj_expr)
247
+ SciMLBase. NoAD ();
248
+ grad = _grad,
249
+ hess = _hess,
250
+ hess_prototype = hess_prototype,
251
+ expr = obj_expr)
246
252
end
247
253
248
254
OptimizationProblem {iip} (_f, u0, p; lb = lb, ub = ub, kwargs... )
@@ -315,16 +321,22 @@ function OptimizationProblemExpr{iip}(sys::OptimizationSystem, u0,
315
321
ub = varmap_to_vars (ub, dvs; check = false , tofloat = false , use_union)
316
322
317
323
obj_expr = toexpr (equations (sys))
318
- pairs_arr = p isa SciMLBase. NullParameters ? [Symbol (_s) => Expr (:ref , :x , i) for (i, _s) in enumerate (dvs)] : [[Symbol (_s) => Expr (:ref , :x , i) for (i, _s) in enumerate (dvs)]. .. , [Symbol (_p) => p[i] for (i, _p) in enumerate (ps)]. .. ]
324
+ pairs_arr = p isa SciMLBase. NullParameters ?
325
+ [Symbol (_s) => Expr (:ref , :x , i) for (i, _s) in enumerate (dvs)] :
326
+ [
327
+ [Symbol (_s) => Expr (:ref , :x , i) for (i, _s) in enumerate (dvs)]. .. ,
328
+ [Symbol (_p) => p[i] for (i, _p) in enumerate (ps)]. .. ,
329
+ ]
319
330
rep_pars_vals! (obj_expr, pairs_arr)
320
331
321
332
if length (sys. constraints) > 0
322
333
@named cons_sys = NonlinearSystem (sys. constraints, dvs, ps)
323
- cons = generate_function (cons_sys, checkbounds = checkbounds, linenumbers = linenumbers,
324
- expression = Val{false })[1 ]
325
- cons_j = generate_jacobian (cons_sys; expression= Val{false }, sparse= sparse)[2 ]
334
+ cons = generate_function (cons_sys, checkbounds = checkbounds,
335
+ linenumbers = linenumbers,
336
+ expression = Val{false })[1 ]
337
+ cons_j = generate_jacobian (cons_sys; expression = Val{false }, sparse = sparse)[2 ]
326
338
327
- cons_h = generate_hessian (cons_sys; expression = Val{false }, sparse = sparse)[2 ]
339
+ cons_h = generate_hessian (cons_sys; expression = Val{false }, sparse = sparse)[2 ]
328
340
329
341
cons_expr = toexpr (equations (cons_sys))
330
342
rep_pars_vals! .(cons_expr, Ref (pairs_arr))
0 commit comments