@@ -364,14 +364,32 @@ function DiffEqBase.OptimizationProblem{iip}(sys::OptimizationSystem, u0map,
364
364
linenumbers = linenumbers,
365
365
expression = Val{false })
366
366
if cons_j
367
- _cons_j = generate_jacobian (cons_sys; expression = Val{false },
368
- sparse = cons_sparse)[2 ]
367
+ _cons_j = let (cons_jac_oop, cons_jac_iip) = generate_jacobian (cons_sys;
368
+ checkbounds = checkbounds,
369
+ linenumbers = linenumbers,
370
+ parallel = parallel, expression = Val{false },
371
+ sparse = cons_sparse)
372
+
373
+ _cons_j (u, p) = cons_jac_oop (u, p)
374
+ _cons_j (J, u, p) = (cons_jac_iip (J, u, p); J)
375
+ _cons_j (u, p:: MTKParameters ) = cons_jac_oop (u, p... )
376
+ _cons_j (J, u, p:: MTKParameters ) = (cons_jac_iip (J, u, p... ); J)
377
+ _cons_j
378
+ end
369
379
else
370
380
_cons_j = nothing
371
381
end
372
382
if cons_h
373
- _cons_h = generate_hessian (cons_sys; expression = Val{false },
374
- sparse = cons_sparse)[2 ]
383
+ _cons_h = let (cons_hess_oop, cons_hess_iip) = generate_hessian (cons_sys, checkbounds = checkbounds,
384
+ linenumbers = linenumbers,
385
+ sparse = cons_sparse, parallel = parallel,
386
+ expression = Val{false })
387
+ _cons_h (u, p) = cons_hess_oop (u, p)
388
+ _cons_h (J, u, p) = (cons_hess_iip (J, u, p); J)
389
+ _cons_h (u, p:: MTKParameters ) = cons_hess_oop (u, p... )
390
+ _cons_h (J, u, p:: MTKParameters ) = (cons_hess_iip (J, u, p... ); J)
391
+ _cons_h
392
+ end
375
393
else
376
394
_cons_h = nothing
377
395
end
0 commit comments