Hi, maybe this can help:
Basically:
- cons is a function that,given a vector of variables,gives a vector of constraints (inplace)
- con_Jacobian is the Jacobian of cons
- con_hessian is a little different,it basically is an inplace adding of the Lagrange multipliers
Also, there is AD implemented for constraints, you can try using:
TwiceDifferentiableConstraints(c!, lx,ux,lc,uc,autodiff=:forward)
(the documentation seems to lack behind, as the support of AD in constraints was in NLSolversBase.jl, not in Optim)