@@ -399,7 +399,12 @@ function DiffEqBase.OptimizationProblem{iip}(sys::OptimizationSystem, u0map,
399399 cons, lcons_, ucons_ = generate_function (cons_sys, checkbounds = checkbounds,
400400 linenumbers = linenumbers,
401401 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
403408 if cons_j
404409 _cons_j = let (cons_jac_oop, cons_jac_iip) = eval_or_rgf .(
405410 generate_jacobian (cons_sys;
@@ -465,7 +470,7 @@ function DiffEqBase.OptimizationProblem{iip}(sys::OptimizationSystem, u0map,
465470 grad = _grad,
466471 hess = _hess,
467472 hess_prototype = hess_prototype,
468- cons = cons[ 2 ] ,
473+ cons = cons,
469474 cons_j = _cons_j,
470475 cons_h = _cons_h,
471476 cons_jac_prototype = cons_jac_prototype,
0 commit comments