|
196 | 196 |
|
197 | 197 | hessian_sparsity(sys::OptimizationSystem) = hessian_sparsity(get_op(sys), states(sys))
|
198 | 198 |
|
199 |
| -function rep_pars_vals!(e::Expr, p) |
200 |
| - rep_pars_vals!.(e.args, Ref(p)) |
201 |
| - replace!(e.args, p...) |
202 |
| -end |
203 |
| - |
204 |
| -function rep_pars_vals!(e, p) end |
205 |
| - |
206 | 199 | """
|
207 | 200 | ```julia
|
208 | 201 | DiffEqBase.OptimizationProblem{iip}(sys::OptimizationSystem, u0map,
|
@@ -276,13 +269,7 @@ function DiffEqBase.OptimizationProblem{iip}(sys::OptimizationSystem, u0map,
|
276 | 269 | expression = Val{false})
|
277 | 270 |
|
278 | 271 | obj_expr = toexpr(subs_constants(objective(sys)))
|
279 |
| - pairs_arr = if p isa SciMLBase.NullParameters |
280 |
| - [Symbol(_s) => Expr(:ref, :x, i) for (i, _s) in enumerate(dvs)] |
281 |
| - else |
282 |
| - vcat([Symbol(_s) => Expr(:ref, :x, i) for (i, _s) in enumerate(dvs)], |
283 |
| - [Symbol(_p) => p[i] for (i, _p) in enumerate(ps)]) |
284 |
| - end |
285 |
| - rep_pars_vals!(obj_expr, pairs_arr) |
| 272 | + |
286 | 273 | if grad
|
287 | 274 | grad_oop, grad_iip = generate_gradient(sys, checkbounds = checkbounds,
|
288 | 275 | linenumbers = linenumbers,
|
@@ -342,8 +329,7 @@ function DiffEqBase.OptimizationProblem{iip}(sys::OptimizationSystem, u0map,
|
342 | 329 | else
|
343 | 330 | _cons_h = nothing
|
344 | 331 | end
|
345 |
| - cons_expr = toexpr.(subs_constants(constraints(cons_sys))) |
346 |
| - rep_pars_vals!.(cons_expr, Ref(pairs_arr)) |
| 332 | + cons_expr = subs_constants(constraints(cons_sys)) |
347 | 333 |
|
348 | 334 | if !haskey(kwargs, :lcons) && !haskey(kwargs, :ucons) # use the symbolically specified bounds
|
349 | 335 | lcons = lcons_
|
|
0 commit comments