@@ -399,7 +399,12 @@ function DiffEqBase.OptimizationProblem{iip}(sys::OptimizationSystem, u0map,
399
399
cons, lcons_, ucons_ = generate_function (cons_sys, checkbounds = checkbounds,
400
400
linenumbers = linenumbers,
401
401
expression = Val{true })
402
- cons = eval_or_rgf .(cons; eval_expression, eval_module)
402
+ cons = let (cons_oop, cons_iip) = eval_or_rgf .(cons; eval_expression, eval_module)
403
+ _cons (u, p) = cons_oop (u, p)
404
+ _cons (resid, u, p) = cons_iip (resid, u, p)
405
+ _cons (u, p:: MTKParameters ) = cons_oop (u, p... )
406
+ _cons (resid, u, p:: MTKParameters ) = cons_iip (resid, u, p... )
407
+ end
403
408
if cons_j
404
409
_cons_j = let (cons_jac_oop, cons_jac_iip) = eval_or_rgf .(
405
410
generate_jacobian (cons_sys;
@@ -465,7 +470,7 @@ function DiffEqBase.OptimizationProblem{iip}(sys::OptimizationSystem, u0map,
465
470
grad = _grad,
466
471
hess = _hess,
467
472
hess_prototype = hess_prototype,
468
- cons = cons[ 2 ] ,
473
+ cons = cons,
469
474
cons_j = _cons_j,
470
475
cons_h = _cons_h,
471
476
cons_jac_prototype = cons_jac_prototype,
0 commit comments