I have the following objective function (w is the variable vector of size nx):

```
function obj_trace(w::Array{Float64,1})
dg = Diagonal(w)
M = F' * (gamma \ dg) * F + eye(nx)
obj = trace(inv(M))
return obj
end
```

where gamma is diagonal (F, nx, gamma are given), and the following constraints:

(1) sum(w) <= c (a known integer);

(2) each element in w is binary (either 0 or 1).

I have tried Pajarito package in Julia using a different formulation: add SDP constraints and no user-defined function. The algorithm (Mosek + CPLEX) does not seem to stop even for small n. Is there a better (faster) way to solve this MICP with user-defined function (ideally i would like to use Ipopt as cont-solver, and provide user-defined gradient and hessian as well)?

Any suggestion is appreciated!