# Nonconvex.jl reproduces the initial vector as the optimized vector

**URL:** https://discourse.julialang.org/t/nonconvex-jl-reproduces-the-initial-vector-as-the-optimized-vector/107094
**Category:** Optimization (Mathematical)
**Tags:** optimization
**Created:** [December 4, 2023, 6:09am UTC](https://discourse.julialang.org/t/nonconvex-jl-reproduces-the-initial-vector-as-the-optimized-vector/107094 "2023-12-04T06:09:36Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![AP\_profile](https://avatars.discourse-cdn.com/v4/letter/a/85f322/32.png) [@AP\_profile](https://discourse.julialang.org/u/AP_profile)
#### Post date: [December 4, 2023, 6:09am UTC](https://discourse.julialang.org/t/nonconvex-jl-reproduces-the-initial-vector-as-the-optimized-vector/107094/1 "2023-12-04T06:09:36Z")

</div>

Hi all,

I have been attempting to use Noncovex.jl for an optimization problem, defined as follows:

```julia
using AbstractDifferentiation
using ForwardDiff
using Nonconvex
Nonconvex.@load NLopt

start_vec = zeros(11)
x = start_vec
gamma_vec = range(start=-7, stop=7, length=40)
rho = 0.58
t_vec = range(0.0, 5.0)
alpha = 0.05
d = 6.0
no_nodes_GL = 70
lambda = 0.1
num_ints = 20

obj_fun_enclosed = x -> OBJ_ciuupi(x, lambda, t_vec, d, alpha, no_nodes_GL)
c1(x, t_vec, d, alpha, rho, gamma_vec, no_nodes_GL) = ((1-alpha) .- [CP_ciuupi(x, t_vec, d, alpha, rho, gamma_val, no_nodes_GL) for gamma_val in gamma_vec])
c1_enclosed = x -> c1(x, t_vec, d, alpha, rho, gamma_vec, no_nodes_GL)
c2(x, t_vec, d, alpha, num_ints) = (10e-1 .- [s_x(t_val, x[div((length(x) + 1), 2):end], t_vec, alpha, d) for t_val in range(start=0, stop=(d - d / num_ints), step=d / num_ints)])
c2_enclosed = x -> c2(x, t_vec, d, alpha, num_ints)

model = Model(obj_fun_enclosed)
addvar!(model, fill(-Inf, length(start_vec)), fill(Inf, length(start_vec)))
add_ineq_constraint!(model, c1_enclosed)
add_ineq_constraint!(model, c2_enclosed)

ad_model1 = abstractdiffy(model, AbstractDifferentiation.ForwardDiffBackend())
alg = NLoptAlg(:LD_SLSQP)
options = NLoptOptions()
r1 = Nonconvex.optimize(ad_model1, alg, start_vec, options=options)

```

If I use `start_vec` as the initial vector in the optimization, it simply reproduces the same vector as the optimized vector. However, when I change it to a vector close to the desired optimized vector, such as:

```julia
r1 = Nonconvex.optimize(ad_model1, alg, [0.1, 1, 1, 0.1, 0.01, 0.2, 0.1, 0.1, 0.2, 0.1, 0.01], options=options)

```

the optimization correctly produces the optimal vector. Can someone please help me with this scenario since most of the time, an approximation for the optimal vector cannot be estimated in this problem, and it should be started with a zero vector, which would eventually converge to the optimal vector.

---

<div class="post-metadata">

### Author: ![mohamed82008](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mohamed82008/32/18171_2.png) [@mohamed82008](https://discourse.julialang.org/u/mohamed82008)
#### Post date: [December 4, 2023, 11:48am UTC](https://discourse.julialang.org/t/nonconvex-jl-reproduces-the-initial-vector-as-the-optimized-vector/107094/2 "2023-12-04T11:48:39Z")

</div>

It’s possible the gradient is not well defined at the initial solution you chose. Can you try evaluating the gradient of your objective and constraint functions using ForwardDiff and see if you have any numerical issues at the initial solution?

---

<div class="post-metadata">

### Author: ![stevengj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stevengj/32/71_2.png) [@stevengj](https://discourse.julialang.org/u/stevengj)
#### Post date: [December 4, 2023, 2:11pm UTC](https://discourse.julialang.org/t/nonconvex-jl-reproduces-the-initial-vector-as-the-optimized-vector/107094/3 "2023-12-04T14:11:04Z")

</div>

PS. Please [quote your code blocks](https://discourse.julialang.org/t/psa-how-to-quote-code-with-backticks/7530). (I edited your post above to do this.)

---

<div class="post-metadata">

### Author: ![AP\_profile](https://avatars.discourse-cdn.com/v4/letter/a/85f322/32.png) [@AP\_profile](https://discourse.julialang.org/u/AP_profile)
#### Post date: [December 4, 2023, 8:37pm UTC](https://discourse.julialang.org/t/nonconvex-jl-reproduces-the-initial-vector-as-the-optimized-vector/107094/4 "2023-12-04T20:37:41Z")

</div>

Hi  
thank you for your respond. I’ve tried the optimization in a more simpler one as below and still the output is as described above.

```julia
using NonconvexUtils
using AbstractDifferentiation
using ForwardDiff
using Nonconvex
Nonconvex.@load NLopt

f(x,p) = p * x[1] * x[4] * (x[1] + x[2] + x[3]) + x[3]
g1(x,p) = -(x[1] * x[2] * x[3] * x[4]) + 25.0 + (p - 1.0)
g2(x,p) = x[1]^2 + x[2]^2 + x[3]^2 + x[4]^2 - 40.0 + (p - 1.0)
f_enclosed = x -> f(x,p)
g1_enclosed = x -> g1(x,p)
g2_enclosed = x -> g2(x,p)

p = 1.0

model = Model(f_enclosed)
addvar!(model, [1.0, 1.0, 1.0, 1.0], [5.0, 5.0, 5.0, 5.0])
add_ineq_constraint!(model, g1_enclosed)
add_eq_constraint!(model, g2_enclosed)
ad_model = abstractdiffy(model, AbstractDifferentiation.ForwardDiffBackend())
alg = NLoptAlg(:LD_SLSQP)

# In NLoptOptions, we can set ftol_rel, ftol_abs, xtol_rel, xtol_abs
# The default values are:
# ftol_rel = 1.0e-6, ftol_abs = 1.0e-6, xtol_rel = 1.0e-6, xtol_abs = 1.0e-6
options = NLoptOptions(ftol_rel=1.0e-8, xtol_abs=1.0e-8, ftol_abs=1.0e-8, xtol_rel = 1.0e-8)

```

When the initial vector is set to

```julia
r = optimize(ad_model, alg, [1.0, 5.0, 5.0, 1.0], options = options)
show(r.minimum) # objective value
show(r.minimizer) # decision variables

```

it correctly produces the optimized vector

```julia
[1.0000000000000682, 4.742999642848207, 3.821149976895435, 1.3794082941786754]

```

But when it is changed to

```julia
r = optimize(ad_model, alg, [1.0, 1.0, 1.0, 1.0], options = options)
show(r.minimum) # objective value
show(r.minimizer) # decision variables

```

the optimization doesn’t seem to work.  
Can you please help me understand this and how I would recode this to get the correct output?

---

<div class="post-metadata">

### Author: ![stevengj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stevengj/32/71_2.png) [@stevengj](https://discourse.julialang.org/u/stevengj)
#### Post date: [December 5, 2023, 12:11am UTC](https://discourse.julialang.org/t/nonconvex-jl-reproduces-the-initial-vector-as-the-optimized-vector/107094/5 "2023-12-05T00:11:25Z")

</div>

Local optimization algorithms typically cannot guarantee convergence to a local minimum unless you give them a feasible starting point — that is, a starting guess that satisfies the constraints. (Many algorithms will try anyway to find a feasible point from an infeasible starting guess, but it’s generally advisable to make your initial guess as close to feasible as possible.)

(In your second example, `[1.0, 1.0, 1.0, 1.0]` violates the `g1` constraint.)

---

<div class="post-metadata">

### Author: ![AP\_profile](https://avatars.discourse-cdn.com/v4/letter/a/85f322/32.png) [@AP\_profile](https://discourse.julialang.org/u/AP_profile)
#### Post date: [December 5, 2023, 7:08am UTC](https://discourse.julialang.org/t/nonconvex-jl-reproduces-the-initial-vector-as-the-optimized-vector/107094/6 "2023-12-05T07:08:38Z")

</div>

Hi thank you for your reply.

I tried it with a starting vector that the optimization does work for and checked the constraints.

```julia
g2_enclosed([1.0, 5.0, 5.0, 1.0]) #output was 12
g1_enclosed([1.0, 5.0, 5.0, 1.0]) # output was 0

```

With this initial vector the optimization seems to work fine. Could you please make me a recommendation of how to start the optimization with the zero vector as this is what I have to use as the starting vector and it should eventually converge to the optimized value. I tried this in R and the slsqp algorithm seems to converge fine.  
Thanks for the help!

---

<div class="post-metadata">

### Author: ![mohamed82008](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mohamed82008/32/18171_2.png) [@mohamed82008](https://discourse.julialang.org/u/mohamed82008)
#### Post date: [December 5, 2023, 7:26am UTC](https://discourse.julialang.org/t/nonconvex-jl-reproduces-the-initial-vector-as-the-optimized-vector/107094/7 "2023-12-05T07:26:06Z")

</div>

> [@AP\_profile](#):
>
> Could you please make me a recommendation of how to start the optimization with the zero vector as this is what I have to use as the starting vector and it should eventually converge to the optimized value. I tried this in R and the slsqp algorithm seems to converge fine.

In the second example, your variables have a lower bound of 1 and upper bound of 5 so why do you want to start with the 0 vector? Starting in the middle of your domain probably makes more sense. Starting all variables at 3 (mid-point) seems to converge.

If you meant to start the original problem at 0, then I can’t comment much on that because the code is not runnable (`OBJ_ciuupi` is missing). I would just say try a few random initial points and pick the best run. I am surprised that R’s slsqp converges though while Nonconvex doesn’t. Do you know if R’s package does anything different than simply calling NLopt?

---

<div class="post-metadata">

### Author: ![AP\_profile](https://avatars.discourse-cdn.com/v4/letter/a/85f322/32.png) [@AP\_profile](https://discourse.julialang.org/u/AP_profile)
#### Post date: [December 5, 2023, 8:01pm UTC](https://discourse.julialang.org/t/nonconvex-jl-reproduces-the-initial-vector-as-the-optimized-vector/107094/8 "2023-12-05T20:01:20Z")

</div>

I used R’s nloptr::slsqp() function for the optimization and used the zero starting vector

---

<div class="post-metadata">

### Author: ![mohamed82008](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mohamed82008/32/18171_2.png) [@mohamed82008](https://discourse.julialang.org/u/mohamed82008)
#### Post date: [December 5, 2023, 8:44pm UTC](https://discourse.julialang.org/t/nonconvex-jl-reproduces-the-initial-vector-as-the-optimized-vector/107094/9 "2023-12-05T20:44:08Z")

</div>

Are you providing gradient functions to R’s nlopt? Does the gradient function in R give you the same gradient as the ForwardDiff gradient in Julia? It might be worth testing the initial gradient is the same across R, finite difference in Julia and ForwardDiff in Julia. This is for the objective and constraint functions.

---

<div class="post-metadata">

### Author: ![AP\_profile](https://avatars.discourse-cdn.com/v4/letter/a/85f322/32.png) [@AP\_profile](https://discourse.julialang.org/u/AP_profile)
#### Post date: [December 5, 2023, 9:36pm UTC](https://discourse.julialang.org/t/nonconvex-jl-reproduces-the-initial-vector-as-the-optimized-vector/107094/10 "2023-12-05T21:36:41Z")

</div>

The R code that I have for the same constraints and the objective function is as follows:

```julia
obj_ciuupi_optim <- function(start.vec, lambda, t.knots.vec, d,
                             alpha, rho, gamma.vec, no.nodes.GL, num.ints){

  # OBJ_ciuupi(b.s.vec, lambda, t.knots.vec, d, alpha, no.nodes.GL)
  obj_fun <- functional::Curry(OBJ_ciuupi, lambda=lambda,
                               t.knots.vec=t.knots.vec,
                               d=d, alpha=alpha,
                               no.nodes.GL=no.nodes.GL)

  # constr_func_ciuupi(b.s.vec, t.knots.vec, d, alpha, rho, gamma.vec, no.nodes.GL, num.ints)
  constr_func <- functional::Curry(constr_func_ciuupi,
                                   t.knots.vec=t.knots.vec, d=d,
                                   alpha=alpha, rho=rho,
                                   gamma.vec=gamma.vec,
                                   no.nodes.GL=no.nodes.GL,
                                   num.ints=num.ints)

  sl <- nloptr::slsqp(x0=start.vec, fn=obj_fun , hin = constr_func,
                     control = list(xtol_rel = 1e-6),
                     nl.info = TRUE)

}

```

Again thank you for responding 😊

---

<div class="post-metadata">

### Author: ![mohamed82008](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mohamed82008/32/18171_2.png) [@mohamed82008](https://discourse.julialang.org/u/mohamed82008)
#### Post date: [December 5, 2023, 11:55pm UTC](https://discourse.julialang.org/t/nonconvex-jl-reproduces-the-initial-vector-as-the-optimized-vector/107094/11 "2023-12-05T23:55:33Z")

</div>

According to their docs [here](https://rdrr.io/cran/nloptr/man/slsqp.html) and [here](https://rdrr.io/cran/nloptr/man/nl.grad.html), it seems that nloptr is using central difference when you don’t provide a gradient function.

Try switching to central difference in Julia as well and see if that makes any difference. You should probably compare the gradients computed with FiniteDifferences.jl and ForwardDiff.jl in Julia. Also compare it with computing the gradient in R.

---

<div class="post-metadata">

### Author: ![AP\_profile](https://avatars.discourse-cdn.com/v4/letter/a/85f322/32.png) [@AP\_profile](https://discourse.julialang.org/u/AP_profile)
#### Post date: [December 6, 2023, 4:40am UTC](https://discourse.julialang.org/t/nonconvex-jl-reproduces-the-initial-vector-as-the-optimized-vector/107094/12 "2023-12-06T04:40:41Z")

</div>

Hi,

I tried checking the gradients as suggested using both R and Julia. and this is the output I’ve got

**R output for the objective function**

```julia
Checking gradients of objective function.
Derivative checker results: 0 error(s) detected.

  eval_grad_f[1] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_grad_f[2] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_grad_f[3] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_grad_f[4] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_grad_f[5] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_grad_f[6] = 2.474565e-01 ~ 2.474565e-01 [5.346845e-09]
  eval_grad_f[7] = 3.460487e-01 ~ 3.460487e-01 [1.085669e-09]
  eval_grad_f[8] = 1.497079e-01 ~ 1.497079e-01 [8.359598e-09]
  eval_grad_f[9] = 1.092599e-01 ~ 1.092599e-01 [7.746387e-09]
  eval_grad_f[10] = 9.397073e-02 ~ 9.397073e-02 [6.919456e-09]
  eval_grad_f[11] = 1.100875e-01 ~ 1.100875e-01 [1.738102e-08]

```

**Julia output for the objective function**

```julia
ForwardDiff.gradient(obj_fun_enclosed_1, start_vec_1)
11-element Vector{Float64}:
 0.0
 0.0
 0.0
 0.0
 0.0
 0.2474564873146979
 0.3460487050815397
 0.14970787662434612
 0.10925986725096369
 0.09397072868232292
 0.11008754170352303

```

**R output for the constraints**

```julia
Checking gradients of inequality constraints.

Derivative checker results: 4 error(s) detected.

  eval_jac_g_ineq[1, 1] = 2.100498e-04 ~ 2.100468e-04 [1.460505e-05]
  eval_jac_g_ineq[2, 1] = 1.479361e-04 ~ 1.479387e-04 [1.796185e-05]
  eval_jac_g_ineq[3, 1] = 2.811982e-05 ~ 2.811849e-05 [4.727133e-05]
  eval_jac_g_ineq[4, 1] = -8.184585e-05 ~ -8.184463e-05 [1.495460e-05]
  eval_jac_g_ineq[5, 1] = -1.219189e-04 ~ -1.219213e-04 [1.971281e-05]
  eval_jac_g_ineq[6, 1] = -9.767673e-05 ~ -9.767711e-05 [3.925723e-06]
* eval_jac_g_ineq[7, 1] = -2.891269e-05 ~ -2.891570e-05 [1.040437e-04]
  eval_jac_g_ineq[8, 1] = 2.430723e-04 ~ 2.430677e-04 [1.876578e-05]
  eval_jac_g_ineq[9, 1] = 1.244169e-03 ~ 1.244172e-03 [2.417121e-06]
  eval_jac_g_ineq[10, 1] = 3.798309e-03 ~ 3.798313e-03 [1.101924e-06]
  eval_jac_g_ineq[11, 1] = 8.555071e-03 ~ 8.555070e-03 [2.078135e-07]
  eval_jac_g_ineq[12, 1] = 1.526720e-02 ~ 1.526719e-02 [3.033921e-07]
  eval_jac_g_ineq[13, 1] = 2.225747e-02 ~ 2.225748e-02 [1.965395e-07]
  eval_jac_g_ineq[14, 1] = 2.655641e-02 ~ 2.655641e-02 [8.088684e-08]
  eval_jac_g_ineq[15, 1] = 2.489812e-02 ~ 2.489812e-02 [2.484157e-08]
  eval_jac_g_ineq[16, 1] = 1.526220e-02 ~ 1.526219e-02 [2.475152e-07]
  eval_jac_g_ineq[17, 1] = -1.764046e-03 ~ -1.764052e-03 [3.001858e-06]
  eval_jac_g_ineq[18, 1] = -2.257903e-02 ~ -2.257904e-02 [1.136383e-07]
  eval_jac_g_ineq[19, 1] = -4.149979e-02 ~ -4.149979e-02 [5.803148e-08]
  eval_jac_g_ineq[20, 1] = -5.276426e-02 ~ -5.276426e-02 [3.017184e-08]
  eval_jac_g_ineq[21, 1] = -5.276426e-02 ~ -5.276426e-02 [3.017184e-08]
  eval_jac_g_ineq[22, 1] = -4.149979e-02 ~ -4.149979e-02 [5.803148e-08]
  eval_jac_g_ineq[23, 1] = -2.257903e-02 ~ -2.257904e-02 [1.136383e-07]
  eval_jac_g_ineq[24, 1] = -1.764046e-03 ~ -1.764044e-03 [1.221709e-06]
  eval_jac_g_ineq[25, 1] = 1.526220e-02 ~ 1.526219e-02 [2.475152e-07]
  eval_jac_g_ineq[26, 1] = 2.489812e-02 ~ 2.489812e-02 [2.484157e-08]
  eval_jac_g_ineq[27, 1] = 2.655641e-02 ~ 2.655641e-02 [8.088684e-08]
  eval_jac_g_ineq[28, 1] = 2.225747e-02 ~ 2.225748e-02 [1.965395e-07]
  eval_jac_g_ineq[29, 1] = 1.526720e-02 ~ 1.526719e-02 [3.033921e-07]
  eval_jac_g_ineq[30, 1] = 8.555071e-03 ~ 8.555077e-03 [6.641540e-07]
  eval_jac_g_ineq[31, 1] = 3.798309e-03 ~ 3.798313e-03 [1.104337e-06]
  eval_jac_g_ineq[32, 1] = 1.244169e-03 ~ 1.244172e-03 [2.417121e-06]
  eval_jac_g_ineq[33, 1] = 2.430723e-04 ~ 2.430752e-04 [1.188613e-05]
* eval_jac_g_ineq[34, 1] = -2.891269e-05 ~ -2.891570e-05 [1.040437e-04]
  eval_jac_g_ineq[35, 1] = -9.767673e-05 ~ -9.767711e-05 [3.925723e-06]
  eval_jac_g_ineq[36, 1] = -1.219189e-04 ~ -1.219213e-04 [1.971281e-05]
  eval_jac_g_ineq[37, 1] = -8.184585e-05 ~ -8.184463e-05 [1.495460e-05]
  eval_jac_g_ineq[38, 1] = 2.811982e-05 ~ 2.811849e-05 [4.727133e-05]
  eval_jac_g_ineq[39, 1] = 1.479361e-04 ~ 1.479387e-04 [1.796185e-05]
  eval_jac_g_ineq[40, 1] = 2.100498e-04 ~ 2.100468e-04 [1.460505e-05]
  eval_jac_g_ineq[41, 1] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[42, 1] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[43, 1] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[44, 1] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[45, 1] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[46, 1] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[47, 1] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[48, 1] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[49, 1] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[50, 1] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[51, 1] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[52, 1] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[53, 1] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[54, 1] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[55, 1] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[56, 1] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[57, 1] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[58, 1] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[59, 1] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[60, 1] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[1, 2] = -4.551692e-04 ~ -4.551709e-04 [3.778144e-06]
  eval_jac_g_ineq[2, 2] = -3.107121e-04 ~ -3.107116e-04 [1.691506e-06]
* eval_jac_g_ineq[3, 2] = -3.476760e-05 ~ -3.477186e-05 [1.226340e-04]
  eval_jac_g_ineq[4, 2] = 2.604703e-04 ~ 2.604723e-04 [7.632853e-06]
  eval_jac_g_ineq[5, 2] = 5.975555e-04 ~ 5.975515e-04 [6.804494e-06]
  eval_jac_g_ineq[6, 2] = 1.399284e-03 ~ 1.399286e-03 [1.353068e-06]
  eval_jac_g_ineq[7, 2] = 3.502639e-03 ~ 3.502637e-03 [6.200981e-07]
  eval_jac_g_ineq[8, 2] = 7.709347e-03 ~ 7.709347e-03 [1.056736e-08]
  eval_jac_g_ineq[9, 2] = 1.403323e-02 ~ 1.403324e-02 [2.900481e-07]
  eval_jac_g_ineq[10, 2] = 2.115354e-02 ~ 2.115355e-02 [1.512161e-07]
  eval_jac_g_ineq[11, 2] = 2.657850e-02 ~ 2.657850e-02 [9.695823e-09]
  eval_jac_g_ineq[12, 2] = 2.761314e-02 ~ 2.761314e-02 [8.880059e-08]
  eval_jac_g_ineq[13, 2] = 2.268072e-02 ~ 2.268072e-02 [1.951670e-07]
  eval_jac_g_ineq[14, 2] = 1.224699e-02 ~ 1.224700e-02 [2.513736e-07]
  eval_jac_g_ineq[15, 2] = -1.234989e-03 ~ -1.234993e-03 [3.472906e-06]
  eval_jac_g_ineq[16, 2] = -1.438935e-02 ~ -1.438935e-02 [1.822992e-07]
  eval_jac_g_ineq[17, 2] = -2.442320e-02 ~ -2.442320e-02 [3.835587e-08]
  eval_jac_g_ineq[18, 2] = -3.024124e-02 ~ -3.024124e-02 [3.083400e-08]
  eval_jac_g_ineq[19, 2] = -3.257044e-02 ~ -3.257044e-02 [2.060362e-08]
  eval_jac_g_ineq[20, 2] = -3.308238e-02 ~ -3.308238e-02 [2.140371e-08]
  eval_jac_g_ineq[21, 2] = -3.308238e-02 ~ -3.308238e-02 [2.140371e-08]
  eval_jac_g_ineq[22, 2] = -3.257044e-02 ~ -3.257044e-02 [2.060362e-08]
  eval_jac_g_ineq[23, 2] = -3.024124e-02 ~ -3.024124e-02 [3.083400e-08]
  eval_jac_g_ineq[24, 2] = -2.442320e-02 ~ -2.442320e-02 [3.873121e-08]
  eval_jac_g_ineq[25, 2] = -1.438935e-02 ~ -1.438935e-02 [1.822992e-07]
  eval_jac_g_ineq[26, 2] = -1.234989e-03 ~ -1.234993e-03 [3.472906e-06]
  eval_jac_g_ineq[27, 2] = 1.224699e-02 ~ 1.224700e-02 [2.513736e-07]
  eval_jac_g_ineq[28, 2] = 2.268072e-02 ~ 2.268072e-02 [1.951670e-07]
  eval_jac_g_ineq[29, 2] = 2.761314e-02 ~ 2.761314e-02 [8.880059e-08]
  eval_jac_g_ineq[30, 2] = 2.657850e-02 ~ 2.657850e-02 [9.695823e-09]
  eval_jac_g_ineq[31, 2] = 2.115354e-02 ~ 2.115355e-02 [1.507828e-07]
  eval_jac_g_ineq[32, 2] = 1.403323e-02 ~ 1.403324e-02 [2.900481e-07]
  eval_jac_g_ineq[33, 2] = 7.709347e-03 ~ 7.709347e-03 [1.056736e-08]
  eval_jac_g_ineq[34, 2] = 3.502639e-03 ~ 3.502637e-03 [6.200981e-07]
  eval_jac_g_ineq[35, 2] = 1.399284e-03 ~ 1.399286e-03 [1.353068e-06]
  eval_jac_g_ineq[36, 2] = 5.975555e-04 ~ 5.975515e-04 [6.804494e-06]
  eval_jac_g_ineq[37, 2] = 2.604703e-04 ~ 2.604723e-04 [7.632853e-06]
* eval_jac_g_ineq[38, 2] = -3.476760e-05 ~ -3.477186e-05 [1.226340e-04]
  eval_jac_g_ineq[39, 2] = -3.107121e-04 ~ -3.107116e-04 [1.691506e-06]
  eval_jac_g_ineq[40, 2] = -4.551692e-04 ~ -4.551709e-04 [3.778144e-06]
  eval_jac_g_ineq[41, 2] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[42, 2] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[43, 2] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[44, 2] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[45, 2] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[46, 2] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[47, 2] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[48, 2] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[49, 2] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[50, 2] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[51, 2] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[52, 2] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[53, 2] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[54, 2] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[55, 2] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[56, 2] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[57, 2] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[58, 2] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[59, 2] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[60, 2] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[1, 3] = 8.499575e-04 ~ 8.499548e-04 [3.173085e-06]
  eval_jac_g_ineq[2, 3] = 7.731437e-04 ~ 7.731467e-04 [3.887494e-06]
  eval_jac_g_ineq[3, 3] = 9.574904e-04 ~ 9.574890e-04 [1.407368e-06]
  eval_jac_g_ineq[4, 3] = 2.289802e-03 ~ 2.289802e-03 [2.893182e-07]
  eval_jac_g_ineq[5, 3] = 5.749758e-03 ~ 5.749755e-03 [5.247953e-07]
  eval_jac_g_ineq[6, 3] = 1.163201e-02 ~ 1.163201e-02 [4.025605e-08]
  eval_jac_g_ineq[7, 3] = 1.887688e-02 ~ 1.887688e-02 [1.436056e-07]
  eval_jac_g_ineq[8, 3] = 2.509637e-02 ~ 2.509636e-02 [1.881428e-07]
  eval_jac_g_ineq[9, 3] = 2.746521e-02 ~ 2.746521e-02 [2.890546e-08]
  eval_jac_g_ineq[10, 3] = 2.404779e-02 ~ 2.404778e-02 [1.461865e-07]
  eval_jac_g_ineq[11, 3] = 1.482165e-02 ~ 1.482166e-02 [1.193840e-07]
  eval_jac_g_ineq[12, 3] = 1.836829e-03 ~ 1.836829e-03 [2.005960e-07]
  eval_jac_g_ineq[13, 3] = -1.155202e-02 ~ -1.155201e-02 [1.584953e-07]
  eval_jac_g_ineq[14, 3] = -2.196378e-02 ~ -2.196378e-02 [2.448893e-07]
  eval_jac_g_ineq[15, 3] = -2.716842e-02 ~ -2.716842e-02 [5.989375e-08]
  eval_jac_g_ineq[16, 3] = -2.669960e-02 ~ -2.669960e-02 [3.188324e-08]
  eval_jac_g_ineq[17, 3] = -2.177725e-02 ~ -2.177726e-02 [2.148193e-07]
  eval_jac_g_ineq[18, 3] = -1.471864e-02 ~ -1.471864e-02 [1.162662e-08]
  eval_jac_g_ineq[19, 3] = -8.144407e-03 ~ -8.144408e-03 [1.891146e-07]
  eval_jac_g_ineq[20, 3] = -4.243099e-03 ~ -4.243098e-03 [2.039758e-07]
  eval_jac_g_ineq[21, 3] = -4.243099e-03 ~ -4.243098e-03 [2.018154e-07]
  eval_jac_g_ineq[22, 3] = -8.144407e-03 ~ -8.144408e-03 [1.891146e-07]
  eval_jac_g_ineq[23, 3] = -1.471864e-02 ~ -1.471864e-02 [1.162662e-08]
  eval_jac_g_ineq[24, 3] = -2.177725e-02 ~ -2.177725e-02 [1.273074e-07]
  eval_jac_g_ineq[25, 3] = -2.669960e-02 ~ -2.669960e-02 [3.188324e-08]
  eval_jac_g_ineq[26, 3] = -2.716842e-02 ~ -2.716842e-02 [5.989375e-08]
  eval_jac_g_ineq[27, 3] = -2.196378e-02 ~ -2.196378e-02 [9.433196e-08]
  eval_jac_g_ineq[28, 3] = -1.155202e-02 ~ -1.155201e-02 [1.584953e-07]
  eval_jac_g_ineq[29, 3] = 1.836829e-03 ~ 1.836829e-03 [2.005960e-07]
  eval_jac_g_ineq[30, 3] = 1.482165e-02 ~ 1.482166e-02 [1.193840e-07]
  eval_jac_g_ineq[31, 3] = 2.404779e-02 ~ 2.404779e-02 [1.640186e-07]
  eval_jac_g_ineq[32, 3] = 2.746521e-02 ~ 2.746521e-02 [2.890546e-08]
  eval_jac_g_ineq[33, 3] = 2.509637e-02 ~ 2.509636e-02 [1.881428e-07]
  eval_jac_g_ineq[34, 3] = 1.887688e-02 ~ 1.887688e-02 [1.436056e-07]
  eval_jac_g_ineq[35, 3] = 1.163201e-02 ~ 1.163201e-02 [4.104414e-08]
  eval_jac_g_ineq[36, 3] = 5.749758e-03 ~ 5.749755e-03 [5.247953e-07]
  eval_jac_g_ineq[37, 3] = 2.289802e-03 ~ 2.289802e-03 [2.893182e-07]
  eval_jac_g_ineq[38, 3] = 9.574904e-04 ~ 9.574890e-04 [1.407368e-06]
  eval_jac_g_ineq[39, 3] = 7.731437e-04 ~ 7.731467e-04 [3.887494e-06]
  eval_jac_g_ineq[40, 3] = 8.499575e-04 ~ 8.499548e-04 [3.173085e-06]
  eval_jac_g_ineq[41, 3] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[42, 3] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[43, 3] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[44, 3] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[45, 3] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[46, 3] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[47, 3] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[48, 3] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[49, 3] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[50, 3] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[51, 3] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[52, 3] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[53, 3] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[54, 3] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[55, 3] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[56, 3] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[57, 3] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[58, 3] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[59, 3] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[60, 3] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[1, 4] = 7.616218e-04 ~ 7.616207e-04 [1.388507e-06]
  eval_jac_g_ineq[2, 4] = 4.387151e-03 ~ 4.387148e-03 [7.098168e-07]
  eval_jac_g_ineq[3, 4] = 1.057020e-02 ~ 1.057020e-02 [1.948543e-07]
  eval_jac_g_ineq[4, 4] = 1.838741e-02 ~ 1.838741e-02 [3.327326e-08]
  eval_jac_g_ineq[5, 4] = 2.551511e-02 ~ 2.551512e-02 [1.508119e-07]
  eval_jac_g_ineq[6, 4] = 2.901965e-02 ~ 2.901965e-02 [9.947778e-08]
  eval_jac_g_ineq[7, 4] = 2.670673e-02 ~ 2.670673e-02 [3.054189e-08]
  eval_jac_g_ineq[8, 4] = 1.824247e-02 ~ 1.824247e-02 [9.620431e-09]
  eval_jac_g_ineq[9, 4] = 5.420538e-03 ~ 5.420536e-03 [3.317836e-07]
  eval_jac_g_ineq[10, 4] = -8.502865e-03 ~ -8.502863e-03 [2.431750e-07]
  eval_jac_g_ineq[11, 4] = -2.001491e-02 ~ -2.001490e-02 [4.831350e-08]
  eval_jac_g_ineq[12, 4] = -2.654804e-02 ~ -2.654804e-02 [2.030907e-08]
  eval_jac_g_ineq[13, 4] = -2.723957e-02 ~ -2.723957e-02 [1.057811e-07]
  eval_jac_g_ineq[14, 4] = -2.303289e-02 ~ -2.303288e-02 [2.403502e-07]
  eval_jac_g_ineq[15, 4] = -1.614472e-02 ~ -1.614472e-02 [2.939112e-09]
  eval_jac_g_ineq[16, 4] = -9.129679e-03 ~ -9.129681e-03 [2.191986e-07]
  eval_jac_g_ineq[17, 4] = -3.912049e-03 ~ -3.912054e-03 [1.246579e-06]
  eval_jac_g_ineq[18, 4] = -1.180539e-03 ~ -1.180544e-03 [4.322890e-06]
  eval_jac_g_ineq[19, 4] = -4.061204e-04 ~ -4.061237e-04 [8.051486e-06]
  eval_jac_g_ineq[20, 4] = -4.556554e-04 ~ -4.556552e-04 [5.974969e-07]
  eval_jac_g_ineq[21, 4] = -4.556554e-04 ~ -4.556552e-04 [5.974969e-07]
  eval_jac_g_ineq[22, 4] = -4.061204e-04 ~ -4.061237e-04 [8.051486e-06]
  eval_jac_g_ineq[23, 4] = -1.180539e-03 ~ -1.180544e-03 [4.322890e-06]
  eval_jac_g_ineq[24, 4] = -3.912049e-03 ~ -3.912047e-03 [6.579415e-07]
  eval_jac_g_ineq[25, 4] = -9.129679e-03 ~ -9.129681e-03 [2.191986e-07]
  eval_jac_g_ineq[26, 4] = -1.614472e-02 ~ -1.614472e-02 [2.939112e-09]
  eval_jac_g_ineq[27, 4] = -2.303289e-02 ~ -2.303288e-02 [2.399522e-07]
  eval_jac_g_ineq[28, 4] = -2.723957e-02 ~ -2.723957e-02 [1.057811e-07]
  eval_jac_g_ineq[29, 4] = -2.654804e-02 ~ -2.654804e-02 [2.030907e-08]
  eval_jac_g_ineq[30, 4] = -2.001491e-02 ~ -2.001490e-02 [4.877151e-08]
  eval_jac_g_ineq[31, 4] = -8.502865e-03 ~ -8.502863e-03 [2.420968e-07]
  eval_jac_g_ineq[32, 4] = 5.420538e-03 ~ 5.420536e-03 [3.317836e-07]
  eval_jac_g_ineq[33, 4] = 1.824247e-02 ~ 1.824247e-02 [9.620431e-09]
  eval_jac_g_ineq[34, 4] = 2.670673e-02 ~ 2.670673e-02 [3.054189e-08]
  eval_jac_g_ineq[35, 4] = 2.901965e-02 ~ 2.901965e-02 [1.572648e-07]
  eval_jac_g_ineq[36, 4] = 2.551511e-02 ~ 2.551511e-02 [1.411947e-07]
  eval_jac_g_ineq[37, 4] = 1.838741e-02 ~ 1.838741e-02 [3.327326e-08]
  eval_jac_g_ineq[38, 4] = 1.057020e-02 ~ 1.057020e-02 [1.948543e-07]
  eval_jac_g_ineq[39, 4] = 4.387151e-03 ~ 4.387148e-03 [7.077273e-07]
  eval_jac_g_ineq[40, 4] = 7.616218e-04 ~ 7.616207e-04 [1.388507e-06]
  eval_jac_g_ineq[41, 4] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[42, 4] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[43, 4] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[44, 4] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[45, 4] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[46, 4] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[47, 4] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[48, 4] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[49, 4] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[50, 4] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[51, 4] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[52, 4] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[53, 4] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[54, 4] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[55, 4] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[56, 4] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[57, 4] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[58, 4] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[59, 4] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[60, 4] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[1, 5] = 1.880763e-02 ~ 1.880763e-02 [6.229844e-08]
  eval_jac_g_ineq[2, 5] = 2.498933e-02 ~ 2.498933e-02 [1.177317e-07]
  eval_jac_g_ineq[3, 5] = 2.798204e-02 ~ 2.798204e-02 [8.697386e-08]
  eval_jac_g_ineq[4, 5] = 2.565599e-02 ~ 2.565599e-02 [3.635520e-08]
  eval_jac_g_ineq[5, 5] = 1.753961e-02 ~ 1.753961e-02 [5.605379e-08]
  eval_jac_g_ineq[6, 5] = 5.193282e-03 ~ 5.193286e-03 [7.082629e-07]
  eval_jac_g_ineq[7, 5] = -8.393751e-03 ~ -8.393750e-03 [1.470213e-07]
  eval_jac_g_ineq[8, 5] = -1.992551e-02 ~ -1.992550e-02 [5.097506e-08]
  eval_jac_g_ineq[9, 5] = -2.687332e-02 ~ -2.687332e-02 [1.198846e-07]
  eval_jac_g_ineq[10, 5] = -2.818271e-02 ~ -2.818271e-02 [1.543593e-08]
  eval_jac_g_ineq[11, 5] = -2.448688e-02 ~ -2.448688e-02 [8.050285e-08]
  eval_jac_g_ineq[12, 5] = -1.776815e-02 ~ -1.776815e-02 [3.845693e-08]
  eval_jac_g_ineq[13, 5] = -1.054040e-02 ~ -1.054040e-02 [1.052983e-07]
  eval_jac_g_ineq[14, 5] = -4.859240e-03 ~ -4.859239e-03 [1.836683e-07]
  eval_jac_g_ineq[15, 5] = -1.616063e-03 ~ -1.616061e-03 [1.108742e-06]
  eval_jac_g_ineq[16, 5] = -4.608981e-04 ~ -4.609004e-04 [4.889576e-06]
  eval_jac_g_ineq[17, 5] = -3.487419e-04 ~ -3.487393e-04 [7.431395e-06]
  eval_jac_g_ineq[18, 5] = -3.283680e-04 ~ -3.283694e-04 [4.260167e-06]
  eval_jac_g_ineq[19, 5] = -5.838874e-05 ~ -5.839020e-05 [2.505161e-05]
  eval_jac_g_ineq[20, 5] = 2.385878e-04 ~ 2.385899e-04 [8.993475e-06]
  eval_jac_g_ineq[21, 5] = 2.385878e-04 ~ 2.385899e-04 [8.993475e-06]
  eval_jac_g_ineq[22, 5] = -5.838874e-05 ~ -5.839020e-05 [2.505161e-05]
  eval_jac_g_ineq[23, 5] = -3.283680e-04 ~ -3.283694e-04 [4.260167e-06]
  eval_jac_g_ineq[24, 5] = -3.487419e-04 ~ -3.487393e-04 [7.457681e-06]
  eval_jac_g_ineq[25, 5] = -4.608981e-04 ~ -4.609004e-04 [4.889576e-06]
  eval_jac_g_ineq[26, 5] = -1.616063e-03 ~ -1.616061e-03 [1.108742e-06]
  eval_jac_g_ineq[27, 5] = -4.859240e-03 ~ -4.859239e-03 [1.836683e-07]
  eval_jac_g_ineq[28, 5] = -1.054040e-02 ~ -1.054040e-02 [1.052983e-07]
  eval_jac_g_ineq[29, 5] = -1.776815e-02 ~ -1.776815e-02 [3.897286e-08]
  eval_jac_g_ineq[30, 5] = -2.448688e-02 ~ -2.448688e-02 [8.050285e-08]
  eval_jac_g_ineq[31, 5] = -2.818271e-02 ~ -2.818271e-02 [1.543593e-08]
  eval_jac_g_ineq[32, 5] = -2.687332e-02 ~ -2.687332e-02 [1.198846e-07]
  eval_jac_g_ineq[33, 5] = -1.992551e-02 ~ -1.992550e-02 [5.097506e-08]
  eval_jac_g_ineq[34, 5] = -8.393751e-03 ~ -8.393750e-03 [1.470213e-07]
  eval_jac_g_ineq[35, 5] = 5.193282e-03 ~ 5.193286e-03 [7.082629e-07]
  eval_jac_g_ineq[36, 5] = 1.753961e-02 ~ 1.753961e-02 [5.605379e-08]
  eval_jac_g_ineq[37, 5] = 2.565599e-02 ~ 2.565599e-02 [3.635520e-08]
  eval_jac_g_ineq[38, 5] = 2.798204e-02 ~ 2.798204e-02 [8.664625e-08]
  eval_jac_g_ineq[39, 5] = 2.498933e-02 ~ 2.498933e-02 [1.177317e-07]
  eval_jac_g_ineq[40, 5] = 1.880763e-02 ~ 1.880763e-02 [6.229844e-08]
  eval_jac_g_ineq[41, 5] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[42, 5] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[43, 5] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[44, 5] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[45, 5] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[46, 5] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[47, 5] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[48, 5] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[49, 5] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[50, 5] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[51, 5] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[52, 5] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[53, 5] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[54, 5] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[55, 5] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[56, 5] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[57, 5] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[58, 5] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[59, 5] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[60, 5] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[1, 6] = 6.309977e-04 ~ 6.309971e-04 [8.391956e-07]
  eval_jac_g_ineq[2, 6] = 5.280377e-04 ~ 5.280375e-04 [2.929488e-07]
  eval_jac_g_ineq[3, 6] = 3.048227e-04 ~ 3.048182e-04 [1.488845e-05]
  eval_jac_g_ineq[4, 6] = 1.542788e-04 ~ 1.542792e-04 [2.172039e-06]
  eval_jac_g_ineq[5, 6] = 2.553174e-04 ~ 2.553165e-04 [3.614360e-06]
  eval_jac_g_ineq[6, 6] = 5.647064e-04 ~ 5.647093e-04 [5.070823e-06]
  eval_jac_g_ineq[7, 6] = 7.899407e-04 ~ 7.899404e-04 [4.540215e-07]
  eval_jac_g_ineq[8, 6] = 6.468197e-04 ~ 6.468147e-04 [7.779670e-06]
  eval_jac_g_ineq[9, 6] = 1.735834e-04 ~ 1.735836e-04 [1.113831e-06]
  eval_jac_g_ineq[10, 6] = -3.025272e-04 ~ -3.025308e-04 [1.199618e-05]
  eval_jac_g_ineq[11, 6] = -6.716849e-04 ~ -6.716847e-04 [2.678528e-07]
  eval_jac_g_ineq[12, 6] = -1.579487e-03 ~ -1.579493e-03 [4.241376e-06]
  eval_jac_g_ineq[13, 6] = -4.299197e-03 ~ -4.299194e-03 [7.263476e-07]
  eval_jac_g_ineq[14, 6] = -9.729481e-03 ~ -9.729482e-03 [1.687090e-07]
  eval_jac_g_ineq[15, 6] = -1.722633e-02 ~ -1.722633e-02 [4.260394e-08]
  eval_jac_g_ineq[16, 6] = -2.441960e-02 ~ -2.441960e-02 [7.226776e-08]
  eval_jac_g_ineq[17, 6] = -2.852117e-02 ~ -2.852117e-02 [4.285751e-08]
  eval_jac_g_ineq[18, 6] = -2.831662e-02 ~ -2.831662e-02 [9.779023e-08]
  eval_jac_g_ineq[19, 6] = -2.522837e-02 ~ -2.522837e-02 [1.257379e-07]
  eval_jac_g_ineq[20, 6] = -2.240843e-02 ~ -2.240843e-02 [3.864267e-08]
  eval_jac_g_ineq[21, 6] = -2.240843e-02 ~ -2.240843e-02 [3.864267e-08]
  eval_jac_g_ineq[22, 6] = -2.522837e-02 ~ -2.522837e-02 [1.257379e-07]
  eval_jac_g_ineq[23, 6] = -2.831662e-02 ~ -2.831662e-02 [9.779023e-08]
  eval_jac_g_ineq[24, 6] = -2.852117e-02 ~ -2.852117e-02 [4.253609e-08]
  eval_jac_g_ineq[25, 6] = -2.441960e-02 ~ -2.441960e-02 [7.264316e-08]
  eval_jac_g_ineq[26, 6] = -1.722633e-02 ~ -1.722633e-02 [4.260394e-08]
  eval_jac_g_ineq[27, 6] = -9.729481e-03 ~ -9.729482e-03 [1.687090e-07]
  eval_jac_g_ineq[28, 6] = -4.299197e-03 ~ -4.299194e-03 [7.263476e-07]
  eval_jac_g_ineq[29, 6] = -1.579487e-03 ~ -1.579493e-03 [4.241376e-06]
  eval_jac_g_ineq[30, 6] = -6.716849e-04 ~ -6.716847e-04 [2.815008e-07]
  eval_jac_g_ineq[31, 6] = -3.025272e-04 ~ -3.025234e-04 [1.260134e-05]
  eval_jac_g_ineq[32, 6] = 1.735834e-04 ~ 1.735836e-04 [1.113831e-06]
  eval_jac_g_ineq[33, 6] = 6.468197e-04 ~ 6.468147e-04 [7.779670e-06]
  eval_jac_g_ineq[34, 6] = 7.899407e-04 ~ 7.899404e-04 [4.540215e-07]
  eval_jac_g_ineq[35, 6] = 5.647065e-04 ~ 5.647019e-04 [8.139174e-06]
  eval_jac_g_ineq[36, 6] = 2.553174e-04 ~ 2.553165e-04 [3.614360e-06]
  eval_jac_g_ineq[37, 6] = 1.542788e-04 ~ 1.542792e-04 [2.172039e-06]
  eval_jac_g_ineq[38, 6] = 3.048227e-04 ~ 3.048256e-04 [9.554022e-06]
  eval_jac_g_ineq[39, 6] = 5.280377e-04 ~ 5.280375e-04 [2.929488e-07]
  eval_jac_g_ineq[40, 6] = 6.309977e-04 ~ 6.309971e-04 [8.391956e-07]
  eval_jac_g_ineq[41, 6] = -1.000000e+00 ~ -1.000000e+00 [1.311518e-11]
  eval_jac_g_ineq[42, 6] = -8.583937e-01 ~ -8.583937e-01 [8.528529e-09]
  eval_jac_g_ineq[43, 6] = -5.045512e-01 ~ -5.045512e-01 [9.760443e-09]
  eval_jac_g_ineq[44, 6] = -1.092924e-01 ~ -1.092924e-01 [1.748409e-08]
  eval_jac_g_ineq[45, 6] = 1.559149e-01 ~ 1.559149e-01 [4.596926e-08]
  eval_jac_g_ineq[46, 6] = 2.122066e-01 ~ 2.122066e-01 [1.689947e-08]
  eval_jac_g_ineq[47, 6] = 1.039433e-01 ~ 1.039433e-01 [4.585167e-08]
  eval_jac_g_ineq[48, 6] = -4.683960e-02 ~ -4.683959e-02 [1.538263e-07]
  eval_jac_g_ineq[49, 6] = -1.261378e-01 ~ -1.261378e-01 [3.929394e-08]
  eval_jac_g_ineq[50, 6] = -9.537708e-02 ~ -9.537707e-02 [4.307637e-08]
  eval_jac_g_ineq[51, 6] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[52, 6] = 7.803579e-02 ~ 7.803579e-02 [4.320452e-08]
  eval_jac_g_ineq[53, 6] = 8.409186e-02 ~ 8.409186e-02 [1.977306e-08]
  eval_jac_g_ineq[54, 6] = 2.522132e-02 ~ 2.522132e-02 [2.449447e-07]
  eval_jac_g_ineq[55, 6] = -4.454711e-02 ~ -4.454711e-02 [4.620444e-08]
  eval_jac_g_ineq[56, 6] = -7.073553e-02 ~ -7.073553e-02 [1.707226e-08]
  eval_jac_g_ineq[57, 6] = -3.897872e-02 ~ -3.897873e-02 [1.417768e-07]
  eval_jac_g_ineq[58, 6] = 1.928689e-02 ~ 1.928690e-02 [2.998646e-07]
  eval_jac_g_ineq[59, 6] = 5.606124e-02 ~ 5.606124e-02 [1.955503e-08]
  eval_jac_g_ineq[60, 6] = 4.517862e-02 ~ 4.517862e-02 [1.474066e-07]
  eval_jac_g_ineq[1, 7] = -1.297040e-03 ~ -1.297042e-03 [1.691736e-06]
  eval_jac_g_ineq[2, 7] = -1.080522e-03 ~ -1.080520e-03 [1.672776e-06]
  eval_jac_g_ineq[3, 7] = -6.190528e-04 ~ -6.190538e-04 [1.629597e-06]
  eval_jac_g_ineq[4, 7] = -3.156959e-04 ~ -3.156960e-04 [4.638937e-07]
  eval_jac_g_ineq[5, 7] = -5.398321e-04 ~ -5.398318e-04 [4.868784e-07]
  eval_jac_g_ineq[6, 7] = -1.201505e-03 ~ -1.201503e-03 [1.841876e-06]
  eval_jac_g_ineq[7, 7] = -1.739064e-03 ~ -1.739062e-03 [8.572598e-07]
  eval_jac_g_ineq[8, 7] = -1.760357e-03 ~ -1.760356e-03 [4.010737e-07]
  eval_jac_g_ineq[9, 7] = -1.843863e-03 ~ -1.843862e-03 [6.236040e-07]
  eval_jac_g_ineq[10, 7] = -3.561128e-03 ~ -3.561124e-03 [9.901059e-07]
  eval_jac_g_ineq[11, 7] = -8.308321e-03 ~ -8.308321e-03 [2.699454e-08]
  eval_jac_g_ineq[12, 7] = -1.577054e-02 ~ -1.577054e-02 [5.611710e-08]
  eval_jac_g_ineq[13, 7] = -2.356694e-02 ~ -2.356694e-02 [1.743812e-07]
  eval_jac_g_ineq[14, 7] = -2.883473e-02 ~ -2.883473e-02 [6.888541e-08]
  eval_jac_g_ineq[15, 7] = -3.067119e-02 ~ -3.067119e-02 [1.978594e-08]

```

(please refer to the next reply as well)

---

<div class="post-metadata">

### Author: ![AP\_profile](https://avatars.discourse-cdn.com/v4/letter/a/85f322/32.png) [@AP\_profile](https://discourse.julialang.org/u/AP_profile)
#### Post date: [December 6, 2023, 4:42am UTC](https://discourse.julialang.org/t/nonconvex-jl-reproduces-the-initial-vector-as-the-optimized-vector/107094/13 "2023-12-06T04:42:11Z")

</div>

```julia
  eval_jac_g_ineq[55, 7] = 9.444844e-02 ~ 9.444843e-02 [5.258120e-08]
  eval_jac_g_ineq[56, 7] = 1.488202e-01 ~ 1.488202e-01 [1.450317e-10]
  eval_jac_g_ineq[57, 7] = 8.149453e-02 ~ 8.149453e-02 [5.116114e-08]
  eval_jac_g_ineq[58, 7] = -4.011612e-02 ~ -4.011613e-02 [1.674713e-07]
  eval_jac_g_ineq[59, 7] = -1.161041e-01 ~ -1.161041e-01 [3.644827e-08]
  eval_jac_g_ineq[60, 7] = -9.322663e-02 ~ -9.322663e-02 [1.531214e-08]
  eval_jac_g_ineq[1, 8] = 1.412922e-03 ~ 1.412921e-03 [1.039232e-06]
  eval_jac_g_ineq[2, 8] = 1.156547e-03 ~ 1.156546e-03 [6.175956e-07]
  eval_jac_g_ineq[3, 8] = 6.321191e-04 ~ 6.321222e-04 [4.762306e-06]
  eval_jac_g_ineq[4, 8] = 2.593870e-04 ~ 2.593845e-04 [9.666908e-06]
  eval_jac_g_ineq[5, 8] = 2.901616e-04 ~ 2.901629e-04 [4.359592e-06]
  eval_jac_g_ineq[6, 8] = 1.971653e-04 ~ 1.971647e-04 [3.173382e-06]
  eval_jac_g_ineq[7, 8] = -1.410019e-03 ~ -1.410022e-03 [2.167124e-06]
  eval_jac_g_ineq[8, 8] = -5.906099e-03 ~ -5.906098e-03 [2.592670e-07]
  eval_jac_g_ineq[9, 8] = -1.327410e-02 ~ -1.327410e-02 [5.845972e-08]
  eval_jac_g_ineq[10, 8] = -2.145148e-02 ~ -2.145148e-02 [2.329451e-08]
  eval_jac_g_ineq[11, 8] = -2.730465e-02 ~ -2.730465e-02 [1.191354e-07]
  eval_jac_g_ineq[12, 8] = -2.876846e-02 ~ -2.876846e-02 [7.646303e-08]
  eval_jac_g_ineq[13, 8] = -2.645733e-02 ~ -2.645733e-02 [7.601325e-08]
  eval_jac_g_ineq[14, 8] = -2.327919e-02 ~ -2.327918e-02 [1.135127e-07]
  eval_jac_g_ineq[15, 8] = -2.225398e-02 ~ -2.225398e-02 [1.371727e-07]
  eval_jac_g_ineq[16, 8] = -2.435149e-02 ~ -2.435149e-02 [1.855164e-07]
  eval_jac_g_ineq[17, 8] = -2.814458e-02 ~ -2.814458e-02 [5.135235e-08]
  eval_jac_g_ineq[18, 8] = -3.139749e-02 ~ -3.139749e-02 [4.997748e-08]
  eval_jac_g_ineq[19, 8] = -3.297371e-02 ~ -3.297371e-02 [1.059084e-08]
  eval_jac_g_ineq[20, 8] = -3.331854e-02 ~ -3.331853e-02 [1.211164e-07]
  eval_jac_g_ineq[21, 8] = -3.331854e-02 ~ -3.331853e-02 [1.211164e-07]
  eval_jac_g_ineq[22, 8] = -3.297371e-02 ~ -3.297371e-02 [1.059084e-08]
  eval_jac_g_ineq[23, 8] = -3.139749e-02 ~ -3.139749e-02 [4.997748e-08]
  eval_jac_g_ineq[24, 8] = -2.814458e-02 ~ -2.814458e-02 [5.167807e-08]
  eval_jac_g_ineq[25, 8] = -2.435149e-02 ~ -2.435149e-02 [1.855164e-07]
  eval_jac_g_ineq[26, 8] = -2.225398e-02 ~ -2.225398e-02 [1.371727e-07]
  eval_jac_g_ineq[27, 8] = -2.327919e-02 ~ -2.327918e-02 [1.135127e-07]
  eval_jac_g_ineq[28, 8] = -2.645733e-02 ~ -2.645733e-02 [7.601325e-08]
  eval_jac_g_ineq[29, 8] = -2.876846e-02 ~ -2.876846e-02 [7.646303e-08]
  eval_jac_g_ineq[30, 8] = -2.730465e-02 ~ -2.730465e-02 [1.191354e-07]
  eval_jac_g_ineq[31, 8] = -2.145148e-02 ~ -2.145148e-02 [2.329451e-08]
  eval_jac_g_ineq[32, 8] = -1.327410e-02 ~ -1.327410e-02 [5.845972e-08]
  eval_jac_g_ineq[33, 8] = -5.906099e-03 ~ -5.906098e-03 [2.592670e-07]
  eval_jac_g_ineq[34, 8] = -1.410019e-03 ~ -1.410022e-03 [2.167124e-06]
  eval_jac_g_ineq[35, 8] = 1.971653e-04 ~ 1.971647e-04 [3.173382e-06]
  eval_jac_g_ineq[36, 8] = 2.901616e-04 ~ 2.901629e-04 [4.359592e-06]
  eval_jac_g_ineq[37, 8] = 2.593870e-04 ~ 2.593845e-04 [9.666908e-06]
  eval_jac_g_ineq[38, 8] = 6.321191e-04 ~ 6.321222e-04 [4.762306e-06]
  eval_jac_g_ineq[39, 8] = 1.156547e-03 ~ 1.156546e-03 [6.175956e-07]
  eval_jac_g_ineq[40, 8] = 1.412922e-03 ~ 1.412921e-03 [1.039232e-06]
  eval_jac_g_ineq[41, 8] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[42, 8] = 3.951685e-02 ~ 3.951685e-02 [1.560222e-07]
  eval_jac_g_ineq[43, 8] = 9.980133e-02 ~ 9.980133e-02 [4.919497e-08]
  eval_jac_g_ineq[44, 8] = 5.550273e-02 ~ 5.550273e-02 [3.047158e-08]
  eval_jac_g_ineq[45, 8] = -1.754042e-01 ~ -1.754042e-01 [2.854776e-08]
  eval_jac_g_ineq[46, 8] = -5.456741e-01 ~ -5.456741e-01 [9.135636e-09]
  eval_jac_g_ineq[47, 8] = -8.862530e-01 ~ -8.862530e-01 [7.211453e-09]
  eval_jac_g_ineq[48, 8] = -1.007623e+00 ~ -1.007623e+00 [4.254386e-10]
  eval_jac_g_ineq[49, 8] = -8.256292e-01 ~ -8.256292e-01 [1.564769e-09]
  eval_jac_g_ineq[50, 8] = -4.226741e-01 ~ -4.226741e-01 [1.733944e-08]
  eval_jac_g_ineq[51, 8] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[52, 8] = 2.466792e-01 ~ 2.466792e-01 [8.448838e-09]
  eval_jac_g_ineq[53, 8] = 2.432657e-01 ~ 2.432657e-01 [4.384022e-09]
  eval_jac_g_ineq[54, 8] = 6.844181e-02 ~ 6.844181e-02 [1.468233e-08]
  eval_jac_g_ineq[55, 8] = -1.152216e-01 ~ -1.152216e-01 [5.201028e-08]
  eval_jac_g_ineq[56, 8] = -1.762947e-01 ~ -1.762947e-01 [3.911778e-08]
  eval_jac_g_ineq[57, 8] = -9.433505e-02 ~ -9.433505e-02 [4.714762e-08]
  eval_jac_g_ineq[58, 8] = 4.558402e-02 ~ 4.558402e-02 [6.987970e-08]
  eval_jac_g_ineq[59, 8] = 1.299480e-01 ~ 1.299480e-01 [1.062099e-08]
  eval_jac_g_ineq[60, 8] = 1.030434e-01 ~ 1.030434e-01 [6.047053e-08]
  eval_jac_g_ineq[1, 9] = -1.711758e-03 ~ -1.711756e-03 [1.354667e-06]
  eval_jac_g_ineq[2, 9] = -1.566352e-03 ~ -1.566350e-03 [1.024463e-06]
  eval_jac_g_ineq[3, 9] = -1.603797e-03 ~ -1.603797e-03 [1.364382e-07]
  eval_jac_g_ineq[4, 9] = -3.010994e-03 ~ -3.010996e-03 [6.864313e-07]
  eval_jac_g_ineq[5, 9] = -7.016652e-03 ~ -7.016651e-03 [7.658879e-08]
  eval_jac_g_ineq[6, 9] = -1.376675e-02 ~ -1.376674e-02 [2.472659e-07]
  eval_jac_g_ineq[7, 9] = -2.160589e-02 ~ -2.160589e-02 [1.613217e-07]
  eval_jac_g_ineq[8, 9] = -2.766053e-02 ~ -2.766053e-02 [8.241999e-08]
  eval_jac_g_ineq[9, 9] = -2.964392e-02 ~ -2.964392e-02 [8.888450e-09]
  eval_jac_g_ineq[10, 9] = -2.759481e-02 ~ -2.759480e-02 [7.959849e-08]
  eval_jac_g_ineq[11, 9] = -2.402371e-02 ~ -2.402371e-02 [1.322574e-07]
  eval_jac_g_ineq[12, 9] = -2.212871e-02 ~ -2.212872e-02 [1.914402e-07]
  eval_jac_g_ineq[13, 9] = -2.340974e-02 ~ -2.340974e-02 [3.422700e-08]
  eval_jac_g_ineq[14, 9] = -2.659688e-02 ~ -2.659688e-02 [1.184731e-07]
  eval_jac_g_ineq[15, 9] = -2.871066e-02 ~ -2.871066e-02 [6.811749e-08]
  eval_jac_g_ineq[16, 9] = -2.729751e-02 ~ -2.729751e-02 [5.565113e-08]
  eval_jac_g_ineq[17, 9] = -2.204944e-02 ~ -2.204945e-02 [2.049281e-07]
  eval_jac_g_ineq[18, 9] = -1.476749e-02 ~ -1.476750e-02 [2.893262e-07]
  eval_jac_g_ineq[19, 9] = -8.092396e-03 ~ -8.092396e-03 [4.431160e-08]
  eval_jac_g_ineq[20, 9] = -4.198225e-03 ~ -4.198231e-03 [1.266625e-06]
  eval_jac_g_ineq[21, 9] = -4.198225e-03 ~ -4.198231e-03 [1.266625e-06]
  eval_jac_g_ineq[22, 9] = -8.092396e-03 ~ -8.092396e-03 [4.431160e-08]
  eval_jac_g_ineq[23, 9] = -1.476749e-02 ~ -1.476750e-02 [2.893262e-07]
  eval_jac_g_ineq[24, 9] = -2.204944e-02 ~ -2.204944e-02 [1.329752e-07]
  eval_jac_g_ineq[25, 9] = -2.729751e-02 ~ -2.729751e-02 [5.565113e-08]
  eval_jac_g_ineq[26, 9] = -2.871066e-02 ~ -2.871066e-02 [6.811749e-08]
  eval_jac_g_ineq[27, 9] = -2.659688e-02 ~ -2.659687e-02 [1.616568e-07]
  eval_jac_g_ineq[28, 9] = -2.340974e-02 ~ -2.340974e-02 [3.422700e-08]
  eval_jac_g_ineq[29, 9] = -2.212871e-02 ~ -2.212872e-02 [1.914402e-07]
  eval_jac_g_ineq[30, 9] = -2.402371e-02 ~ -2.402371e-02 [1.322574e-07]
  eval_jac_g_ineq[31, 9] = -2.759481e-02 ~ -2.759480e-02 [7.959849e-08]
  eval_jac_g_ineq[32, 9] = -2.964392e-02 ~ -2.964392e-02 [8.888450e-09]
  eval_jac_g_ineq[33, 9] = -2.766053e-02 ~ -2.766053e-02 [8.208857e-08]
  eval_jac_g_ineq[34, 9] = -2.160589e-02 ~ -2.160589e-02 [1.613217e-07]
  eval_jac_g_ineq[35, 9] = -1.376675e-02 ~ -1.376674e-02 [2.472659e-07]
  eval_jac_g_ineq[36, 9] = -7.016652e-03 ~ -7.016651e-03 [7.658879e-08]
  eval_jac_g_ineq[37, 9] = -3.010994e-03 ~ -3.010996e-03 [6.864313e-07]
  eval_jac_g_ineq[38, 9] = -1.603797e-03 ~ -1.603797e-03 [1.364382e-07]
  eval_jac_g_ineq[39, 9] = -1.566352e-03 ~ -1.566350e-03 [1.024463e-06]
  eval_jac_g_ineq[40, 9] = -1.711758e-03 ~ -1.711756e-03 [1.354667e-06]
  eval_jac_g_ineq[41, 9] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[42, 9] = -1.734129e-02 ~ -1.734129e-02 [4.249968e-08]
  eval_jac_g_ineq[43, 9] = -4.204593e-02 ~ -4.204594e-02 [1.574279e-07]
  eval_jac_g_ineq[44, 9] = -2.161828e-02 ~ -2.161828e-02 [4.752139e-08]
  eval_jac_g_ineq[45, 9] = 5.939615e-02 ~ 5.939615e-02 [4.558708e-08]
  eval_jac_g_ineq[46, 9] = 1.414711e-01 ~ 1.414711e-01 [1.681307e-08]
  eval_jac_g_ineq[47, 9] = 1.169362e-01 ~ 1.169362e-01 [1.403339e-08]
  eval_jac_g_ineq[48, 9] = -9.000551e-02 ~ -9.000552e-02 [7.966351e-08]
  eval_jac_g_ineq[49, 9] = -4.484899e-01 ~ -4.484899e-01 [1.342488e-08]
  eval_jac_g_ineq[50, 9] = -8.132151e-01 ~ -8.132151e-01 [1.132170e-09]
  eval_jac_g_ineq[51, 9] = -1.000000e+00 ~ -1.000000e+00 [1.311518e-11]
  eval_jac_g_ineq[52, 9] = -8.992696e-01 ~ -8.992696e-01 [6.184956e-10]
  eval_jac_g_ineq[53, 9] = -5.504194e-01 ~ -5.504194e-01 [7.437150e-09]
  eval_jac_g_ineq[54, 9] = -1.235479e-01 ~ -1.235479e-01 [4.537854e-08]
  eval_jac_g_ineq[55, 9] = 1.819007e-01 ~ 1.819007e-01 [4.841666e-09]
  eval_jac_g_ineq[56, 9] = 2.546479e-01 ~ 2.546479e-01 [6.507223e-09]
  eval_jac_g_ineq[57, 9] = 1.279302e-01 ~ 1.279302e-01 [4.582962e-08]
  eval_jac_g_ineq[58, 9] = -5.898320e-02 ~ -5.898321e-02 [7.087545e-08]
  eval_jac_g_ineq[59, 9] = -1.621772e-01 ~ -1.621772e-01 [2.616794e-08]
  eval_jac_g_ineq[60, 9] = -1.249769e-01 ~ -1.249769e-01 [6.144354e-09]
  eval_jac_g_ineq[1, 10] = 3.507168e-05 ~ 3.506988e-05 [5.119788e-05]
  eval_jac_g_ineq[2, 10] = -3.597416e-03 ~ -3.597416e-03 [2.190140e-08]
  eval_jac_g_ineq[3, 10] = -9.780721e-03 ~ -9.780720e-03 [1.028556e-07]
  eval_jac_g_ineq[4, 10] = -1.729837e-02 ~ -1.729837e-02 [9.228300e-09]
  eval_jac_g_ineq[5, 10] = -2.372313e-02 ~ -2.372313e-02 [8.224366e-08]
  eval_jac_g_ineq[6, 10] = -2.676868e-02 ~ -2.676868e-02 [2.773197e-08]
  eval_jac_g_ineq[7, 10] = -2.593995e-02 ~ -2.593995e-02 [8.797991e-08]
  eval_jac_g_ineq[8, 10] = -2.310436e-02 ~ -2.310436e-02 [3.303616e-08]
  eval_jac_g_ineq[9, 10] = -2.127056e-02 ~ -2.127057e-02 [1.008702e-07]
  eval_jac_g_ineq[10, 10] = -2.235056e-02 ~ -2.235056e-02 [6.247509e-08]
  eval_jac_g_ineq[11, 10] = -2.567182e-02 ~ -2.567181e-02 [2.367150e-07]
  eval_jac_g_ineq[12, 10] = -2.847744e-02 ~ -2.847744e-02 [7.088697e-08]
  eval_jac_g_ineq[13, 10] = -2.799786e-02 ~ -2.799786e-02 [1.734148e-07]
  eval_jac_g_ineq[14, 10] = -2.340669e-02 ~ -2.340668e-02 [1.518900e-07]
  eval_jac_g_ineq[15, 10] = -1.620840e-02 ~ -1.620840e-02 [9.468972e-08]
  eval_jac_g_ineq[16, 10] = -9.006937e-03 ~ -9.006940e-03 [3.172425e-07]
  eval_jac_g_ineq[17, 10] = -3.825436e-03 ~ -3.825434e-03 [6.562106e-07]
  eval_jac_g_ineq[18, 10] = -1.209007e-03 ~ -1.209006e-03 [9.312983e-07]
  eval_jac_g_ineq[19, 10] = -4.549044e-04 ~ -4.549026e-04 [3.836550e-06]
  eval_jac_g_ineq[20, 10] = -4.523842e-04 ~ -4.523844e-04 [4.324666e-07]
  eval_jac_g_ineq[21, 10] = -4.523842e-04 ~ -4.523844e-04 [4.324666e-07]
  eval_jac_g_ineq[22, 10] = -4.549044e-04 ~ -4.549101e-04 [1.254165e-05]
  eval_jac_g_ineq[23, 10] = -1.209007e-03 ~ -1.209006e-03 [9.312983e-07]
  eval_jac_g_ineq[24, 10] = -3.825436e-03 ~ -3.825434e-03 [6.538142e-07]
  eval_jac_g_ineq[25, 10] = -9.006937e-03 ~ -9.006940e-03 [3.172425e-07]
  eval_jac_g_ineq[26, 10] = -1.620840e-02 ~ -1.620840e-02 [9.468972e-08]
  eval_jac_g_ineq[27, 10] = -2.340669e-02 ~ -2.340668e-02 [1.518900e-07]
  eval_jac_g_ineq[28, 10] = -2.799786e-02 ~ -2.799787e-02 [9.269773e-08]
  eval_jac_g_ineq[29, 10] = -2.847744e-02 ~ -2.847744e-02 [7.088697e-08]
  eval_jac_g_ineq[30, 10] = -2.567182e-02 ~ -2.567181e-02 [2.367150e-07]
  eval_jac_g_ineq[31, 10] = -2.235056e-02 ~ -2.235056e-02 [6.247509e-08]
  eval_jac_g_ineq[32, 10] = -2.127056e-02 ~ -2.127057e-02 [1.008702e-07]
  eval_jac_g_ineq[33, 10] = -2.310436e-02 ~ -2.310436e-02 [3.303616e-08]
  eval_jac_g_ineq[34, 10] = -2.593995e-02 ~ -2.593995e-02 [8.797991e-08]
  eval_jac_g_ineq[35, 10] = -2.676868e-02 ~ -2.676868e-02 [2.773197e-08]
  eval_jac_g_ineq[36, 10] = -2.372313e-02 ~ -2.372313e-02 [8.224366e-08]
  eval_jac_g_ineq[37, 10] = -1.729837e-02 ~ -1.729837e-02 [9.228300e-09]
  eval_jac_g_ineq[38, 10] = -9.780721e-03 ~ -9.780720e-03 [1.028556e-07]
  eval_jac_g_ineq[39, 10] = -3.597416e-03 ~ -3.597416e-03 [2.190140e-08]
  eval_jac_g_ineq[40, 10] = 3.507168e-05 ~ 3.506988e-05 [5.119788e-05]
  eval_jac_g_ineq[41, 10] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[42, 10] = 9.711557e-03 ~ 9.711564e-03 [7.248505e-07]
  eval_jac_g_ineq[43, 10] = 2.322742e-02 ~ 2.322742e-02 [2.001318e-07]
  eval_jac_g_ineq[44, 10] = 1.165594e-02 ~ 1.165594e-02 [3.230812e-07]
  eval_jac_g_ineq[45, 10] = -3.084031e-02 ~ -3.084031e-02 [4.556422e-08]
  eval_jac_g_ineq[46, 10] = -6.944943e-02 ~ -6.944942e-02 [7.141908e-08]
  eval_jac_g_ineq[47, 10] = -5.278623e-02 ~ -5.278623e-02 [3.510403e-08]
  eval_jac_g_ineq[48, 10] = 3.564498e-02 ~ 3.564498e-02 [1.974490e-08]
  eval_jac_g_ineq[49, 10] = 1.419050e-01 ~ 1.419050e-01 [1.311316e-08]
  eval_jac_g_ineq[50, 10] = 1.596553e-01 ~ 1.596553e-01 [2.651613e-08]
  eval_jac_g_ineq[51, 10] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[52, 10] = -3.326066e-01 ~ -3.326066e-01 [1.040923e-08]
  eval_jac_g_ineq[53, 10] = -7.169937e-01 ~ -7.169937e-01 [8.669302e-09]
  eval_jac_g_ineq[54, 10] = -9.711806e-01 ~ -9.711806e-01 [6.907155e-09]
  eval_jac_g_ineq[55, 10] = -9.583061e-01 ~ -9.583061e-01 [6.848063e-09]
  eval_jac_g_ineq[56, 10] = -6.740680e-01 ~ -6.740680e-01 [7.832064e-09]
  eval_jac_g_ineq[57, 10] = -2.551334e-01 ~ -2.551334e-01 [2.313366e-08]
  eval_jac_g_ineq[58, 10] = 1.002302e-01 ~ 1.002302e-01 [4.655426e-08]
  eval_jac_g_ineq[59, 10] = 2.484416e-01 ~ 2.484416e-01 [2.364079e-08]
  eval_jac_g_ineq[60, 10] = 1.780295e-01 ~ 1.780295e-01 [3.173359e-08]
  eval_jac_g_ineq[1, 11] = -1.963864e-02 ~ -1.963864e-02 [1.118350e-07]
  eval_jac_g_ineq[2, 11] = -2.612162e-02 ~ -2.612162e-02 [2.348443e-08]
  eval_jac_g_ineq[3, 11] = -3.005334e-02 ~ -3.005334e-02 [3.007647e-08]
  eval_jac_g_ineq[4, 11] = -3.041545e-02 ~ -3.041545e-02 [6.397067e-08]
  eval_jac_g_ineq[5, 11] = -2.817581e-02 ~ -2.817581e-02 [9.811639e-08]
  eval_jac_g_ineq[6, 11] = -2.580873e-02 ~ -2.580873e-02 [1.059567e-07]
  eval_jac_g_ineq[7, 11] = -2.551560e-02 ~ -2.551560e-02 [1.061536e-07]
  eval_jac_g_ineq[8, 11] = -2.747992e-02 ~ -2.747992e-02 [1.495639e-07]
  eval_jac_g_ineq[9, 11] = -2.964330e-02 ~ -2.964330e-02 [8.147213e-08]
  eval_jac_g_ineq[10, 11] = -2.927064e-02 ~ -2.927064e-02 [1.330657e-07]
  eval_jac_g_ineq[11, 11] = -2.503220e-02 ~ -2.503220e-02 [6.907791e-08]
  eval_jac_g_ineq[12, 11] = -1.792052e-02 ~ -1.792052e-02 [2.228513e-08]
  eval_jac_g_ineq[13, 11] = -1.040555e-02 ~ -1.040555e-02 [2.651381e-07]
  eval_jac_g_ineq[14, 11] = -4.713690e-03 ~ -4.713684e-03 [1.119104e-06]
  eval_jac_g_ineq[15, 11] = -1.638067e-03 ~ -1.638070e-03 [1.841674e-06]
  eval_jac_g_ineq[16, 11] = -5.740069e-04 ~ -5.740076e-04 [1.206484e-06]
  eval_jac_g_ineq[17, 11] = -3.907646e-04 ~ -3.907681e-04 [8.757610e-06]
  eval_jac_g_ineq[18, 11] = -2.758246e-04 ~ -2.758279e-04 [1.203985e-05]
  eval_jac_g_ineq[19, 11] = -1.760682e-05 ~ -1.760572e-05 [6.212508e-05]
  eval_jac_g_ineq[20, 11] = 2.110922e-04 ~ 2.110898e-04 [1.136669e-05]
  eval_jac_g_ineq[21, 11] = 2.110922e-04 ~ 2.110898e-04 [1.136669e-05]
  eval_jac_g_ineq[22, 11] = -1.760682e-05 ~ -1.760572e-05 [6.212508e-05]
  eval_jac_g_ineq[23, 11] = -2.758246e-04 ~ -2.758279e-04 [1.203985e-05]
  eval_jac_g_ineq[24, 11] = -3.907646e-04 ~ -3.907681e-04 [8.757610e-06]
  eval_jac_g_ineq[25, 11] = -5.740069e-04 ~ -5.740076e-04 [1.206484e-06]
  eval_jac_g_ineq[26, 11] = -1.638067e-03 ~ -1.638070e-03 [1.841674e-06]
  eval_jac_g_ineq[27, 11] = -4.713690e-03 ~ -4.713692e-03 [4.615233e-07]
  eval_jac_g_ineq[28, 11] = -1.040555e-02 ~ -1.040555e-02 [2.660191e-07]
  eval_jac_g_ineq[29, 11] = -1.792052e-02 ~ -1.792052e-02 [2.228513e-08]
  eval_jac_g_ineq[30, 11] = -2.503220e-02 ~ -2.503220e-02 [6.907791e-08]
  eval_jac_g_ineq[31, 11] = -2.927064e-02 ~ -2.927063e-02 [1.214754e-07]
  eval_jac_g_ineq[32, 11] = -2.964330e-02 ~ -2.964330e-02 [8.147213e-08]
  eval_jac_g_ineq[33, 11] = -2.747992e-02 ~ -2.747992e-02 [1.495639e-07]
  eval_jac_g_ineq[34, 11] = -2.551560e-02 ~ -2.551560e-02 [1.057943e-07]
  eval_jac_g_ineq[35, 11] = -2.580873e-02 ~ -2.580874e-02 [1.830830e-07]
  eval_jac_g_ineq[36, 11] = -2.817581e-02 ~ -2.817581e-02 [9.779103e-08]
  eval_jac_g_ineq[37, 11] = -3.041545e-02 ~ -3.041545e-02 [6.397067e-08]
  eval_jac_g_ineq[38, 11] = -3.005334e-02 ~ -3.005334e-02 [3.007647e-08]
  eval_jac_g_ineq[39, 11] = -2.612162e-02 ~ -2.612162e-02 [2.348443e-08]
  eval_jac_g_ineq[40, 11] = -1.963864e-02 ~ -1.963864e-02 [1.118350e-07]
  eval_jac_g_ineq[41, 11] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[42, 11] = -6.202765e-03 ~ -6.202757e-03 [1.153691e-06]
  eval_jac_g_ineq[43, 11] = -1.474338e-02 ~ -1.474337e-02 [3.409080e-07]
  eval_jac_g_ineq[44, 11] = -7.319293e-03 ~ -7.319286e-03 [8.795258e-07]
  eval_jac_g_ineq[45, 11] = 1.905920e-02 ~ 1.905921e-02 [3.458754e-07]
  eval_jac_g_ineq[46, 11] = 4.197493e-02 ~ 4.197493e-02 [4.561437e-08]
  eval_jac_g_ineq[47, 11] = 3.095369e-02 ~ 3.095369e-02 [2.864521e-08]
  eval_jac_g_ineq[48, 11] = -2.006437e-02 ~ -2.006437e-02 [1.555124e-07]
  eval_jac_g_ineq[49, 11] = -7.552533e-02 ~ -7.552533e-02 [9.799581e-10]
  eval_jac_g_ineq[50, 11] = -7.852048e-02 ~ -7.852049e-02 [9.213672e-08]
  eval_jac_g_ineq[51, 11] = 0.000000e+00 ~ 0.000000e+00 [0.000000e+00]
  eval_jac_g_ineq[52, 11] = 1.204550e-01 ~ 1.204550e-01 [4.453193e-08]
  eval_jac_g_ineq[53, 11] = 1.810350e-01 ~ 1.810350e-01 [1.285798e-08]
  eval_jac_g_ineq[54, 11] = 7.836902e-02 ~ 7.836902e-02 [4.949604e-08]
  eval_jac_g_ineq[55, 11] = -2.135356e-01 ~ -2.135356e-01 [2.537932e-08]
  eval_jac_g_ineq[56, 11] = -6.031135e-01 ~ -6.031135e-01 [6.494424e-09]
  eval_jac_g_ineq[57, 11] = -9.163977e-01 ~ -9.163977e-01 [5.203212e-09]
  eval_jac_g_ineq[58, 11] = -9.933706e-01 ~ -9.933706e-01 [7.515797e-09]
  eval_jac_g_ineq[59, 11] = -7.859354e-01 ~ -7.859354e-01 [2.979412e-09]
  eval_jac_g_ineq[60, 11] = -3.919501e-01 ~ -3.919501e-01 [1.801767e-08]

```

**Julia output for the constraints**

```julia
show(ForwardDiff.jacobian(c1_enclosed_1, start_vec_1))
[0.00021004983417783173 -0.0004551691476598393 0.0008499574837661109 0.0007616217581131006 0.018807628432066813 0.0006309976513206845 -0.001297039582878229 0.001412922119173439 -0.0017117583135044256 3.507167268904471e-5 -0.01963863741414216; 0.0001479360772679834 -0.0003107120878708989 0.000773143738963639 0.004387150835505965 0.024989326334325282 0.0005280377046425064 -0.0010805222613296359 0.0011565468895345904 -0.001566352062156187 -0.003597416062460945 -0.026121623200028754; 2.8119815738741146e-5 -3.476759438941769e-5 0.0009574903582859294 0.01057019624120716 0.027982043667649597 0.0003048226928089422 -0.0006190528295732067 0.0006321191468170644 -0.0016037972926999221 -0.009780720883014833 -0.030053340800219513; -8.18458504986764e-5 0.00026047030992981044 0.002289802497691762 0.018387406455085947 0.02565599325403284 0.00015427884237911047 -0.00031569585113245207 0.0002593870124130592 -0.003010993623971112 -0.017298370435408123 -0.030415454954782983; -0.00012191890009357443 0.0005975555292969165 0.0057497576318658854 0.02551511289748411 0.017539611962956333 0.0002553174161128224 -0.0005398320780651307 0.00029016159751640874 -0.00701665186365177 -0.02372313095570483 -0.028175805724352777; -9.76767261774409e-5 0.0013992841945877214 
0.011632010816800657 0.0290196509100031 0.005193281966822689 0.0005647064458622637 -0.001201505196357803 0.00019716534313878384 -0.013766746649010474 -0.026768676183990075 -0.025808731962571982; -2.8912691424865384e-5 0.0035026393225035084 0.018876883117929406 0.026706731997197607 -0.008393750838547485 0.000789940726325315 -0.0017390638578974865 -0.0014100193236768047 -0.02160588999703999 -0.02593995113448004 -0.02551559833053253; 0.00024307230072106095 0.0077093466318233295 0.025096369038053797 0.018242471092160758 -0.01992550593841299 0.0006468197372752841 -0.0017603568267133833 -0.005906099124887834 -0.0276605286054299 -0.023104361422928557 -0.02747992014703204; 0.0012441694516778497 0.014033231539352408 0.027465210163151534 0.00542053759690872 -0.02687331711371027 0.00017358344127808752 -0.0018438633973173236 -0.013274102619930093 -0.029643915327807507 -0.02127056353627503 -0.029643299618172136; 0.0037983092500231013 0.02115354368043487 0.024047788018070025 -0.008502865411240818 -0.028182707295183615 -0.00030252718678725355 -0.0035611277267516444 -0.021451481185172726 -0.02759480695873486 -0.022350558548003153 -0.02927063761332953; 0.008555071338982536 0.02657850060977324 0.014821654279245866 -0.020014905410938505 -0.024486875055247083 -0.0006716849255654317 -0.008308321002510128 -0.027304652614475167 -0.02402371484242934 -0.025671815998364655 -0.025032198189396945; 0.01526719794842366 0.027613143098936765 0.0018368285143007615 -0.026548042354849113 -0.017768152741931213 -0.0015794865892728323 -0.015770538760541276 -0.028768455271268402 -0.022128711873367655 -0.028477439808368806 -0.017920516827890996; 0.022257472672633328 0.02268071775285073 -0.011552015288271577 -0.02723957141181415 -0.010540402309759752 -0.0042991967473735545 -0.023566943050344354 -0.026457334079959774 -0.023409738333694235 -0.027997863679840775 -0.010405550679570939; 0.02655640774163517 0.012246993084223307 -0.021963780536325608 -0.023032886849740395 -0.0048592397512808245 -0.009729480597639785 -0.02883473236497735 -0.023279185262808946 -0.02659687828837138 -0.02340668795909141 -0.004713689591398672; 0.02489811987917828 -0.00123498904658652 -0.027168417115204756 -0.01614472274405131 -0.0016160625305898493 -0.017226330200453804 -0.030671194803115264 -0.022253978320199628 -0.028710661362186127 -0.01620840126834138 -0.001638066731208252; 0.015262197756826103 -0.01438934838204939 -0.026699601748322296 -0.009129678691112246 -0.0004608981059052944 -0.02441959650698368 -0.031215004151656237 -0.02435148799647425 -0.027297513211918287 -0.00900693697164049 -0.0005740069409720268; -0.0017640463263968148 -0.02442320342025992 -0.02177725264369114 -0.003912049122924875 -0.000348741918556045 -0.028521166473623114 -0.03405380420588376 -0.028144577110978394 -0.02204944486836438 -0.0038254360665051098 -0.0003907646231381836; -0.02257903408981819 -0.03024124261635155 -0.014718644153702186 -0.0011805393922246854 -0.00032836803931154154 -0.028316621695240126 -0.041020355433405445 -0.031397493255389576 -0.014767493504355746 -0.0012090068411121633 -0.0002758246285428127; -0.04149978848832397 -0.03257043592226566 -0.008144406923407146 -0.00040612042464154095 -5.838872727727107e-5 -0.02522836942708341 -0.05012467893319604 -0.03297370707167744 -0.00809239631835003 -0.0004549043951488303 -1.7606817381851108e-5; -0.05276426087185003 -0.033082381606497506 -0.004243099062004505 -0.00045565543172775415 0.00023858780065151447 -0.022408434119849312 -0.056635141976499166 -0.03331853853065214 -0.004198225488780929 -0.00045238416528278606 0.00021109225496403065; -0.05276426087185003 -0.033082381606497506 -0.004243099062004505 -0.00045565543172775415 0.00023858780065151447 -0.022408434119849312 -0.056635141976499166 -0.03331853853065214 -0.004198225488780929 -0.00045238416528278606 0.00021109225496403065; -0.04149978848832397 -0.03257043592226566 -0.008144406923407146 -0.00040612042464154095 -5.838872727727107e-5 -0.02522836942708341 -0.05012467893319604 -0.03297370707167744 -0.00809239631835003 -0.0004549043951488303 -1.7606817381851108e-5; -0.02257903408981819 -0.03024124261635155 -0.014718644153702186 -0.0011805393922246854 -0.00032836803931154154 -0.028316621695240126 -0.041020355433405445 -0.031397493255389576 -0.014767493504355746 -0.0012090068411121633 -0.0002758246285428127; -0.0017640463263968148 -0.02442320342025992 -0.02177725264369114 -0.003912049122924875 -0.000348741918556045 -0.028521166473623114 -0.03405380420588376 -0.028144577110978394 -0.02204944486836438 -0.0038254360665051098 -0.0003907646231381836; 0.015262197756826103 -0.01438934838204939 -0.026699601748322296 -0.009129678691112246 -0.0004608981059052944 -0.02441959650698368 -0.031215004151656237 -0.02435148799647425 -0.027297513211918287 -0.00900693697164049 -0.0005740069409720268; 0.02489811987917828 -0.00123498904658652 -0.027168417115204756 -0.01614472274405131 -0.0016160625305898493 -0.017226330200453804 -0.030671194803115264 -0.022253978320199628 -0.028710661362186127 -0.01620840126834138 -0.001638066731208252; 0.02655640774163517 0.012246993084223307 -0.021963780536325608 -0.023032886849740395 -0.0048592397512808245 
-0.009729480597639785 -0.02883473236497735 -0.023279185262808946 -0.02659687828837138 -0.02340668795909141 -0.004713689591398672; 0.022257472672633328 0.02268071775285073 -0.011552015288271577 -0.02723957141181415 -0.010540402309759752 -0.0042991967473735545 -0.023566943050344354 -0.026457334079959774 -0.023409738333694235 -0.027997863679840775 -0.010405550679570939; 0.01526719794842366 0.027613143098936765 0.0018368285143007615 -0.026548042354849113 -0.017768152741931213 -0.0015794865892728323 -0.015770538760541276 -0.028768455271268402 -0.022128711873367655 -0.028477439808368806 -0.017920516827890996; 0.008555071338982536 0.02657850060977324 0.014821654279245866 -0.020014905410938505 -0.024486875055247083 -0.0006716849255654317 -0.008308321002510128 -0.027304652614475167 -0.02402371484242934 -0.025671815998364655 -0.025032198189396945; 0.0037983092500231013 0.02115354368043487 0.024047788018070025 -0.008502865411240818 -0.028182707295183615 -0.00030252718678725355 -0.0035611277267516444 -0.021451481185172726 
-0.02759480695873486 -0.022350558548003153 -0.02927063761332953; 0.0012441694516778497 0.014033231539352408 0.027465210163151534 0.00542053759690872 -0.02687331711371027 0.00017358344127808752 -0.0018438633973173236 -0.013274102619930093 -0.029643915327807507 -0.02127056353627503 -0.029643299618172136; 0.00024307230072106095 0.0077093466318233295 0.025096369038053797 0.018242471092160758 -0.01992550593841299 0.0006468197372752841 -0.0017603568267133833 -0.005906099124887834 -0.0276605286054299 -0.023104361422928557 -0.02747992014703204; -2.8912691424865384e-5 0.0035026393225035084 0.018876883117929406 0.026706731997197607 -0.008393750838547485 0.000789940726325315 -0.0017390638578974865 -0.0014100193236768047 -0.02160588999703999 -0.02593995113448004 -0.02551559833053253; -9.76767261774409e-5 0.0013992841945877214 0.011632010816800657 0.0290196509100031 0.005193281966822689 0.0005647064458622637 -0.001201505196357803 0.00019716534313878384 -0.013766746649010474 -0.026768676183990075 -0.025808731962571982; -0.00012191890009357443 0.0005975555292969165 0.0057497576318658854 0.02551511289748411 0.017539611962956333 0.0002553174161128224 -0.0005398320780651307 0.00029016159751640874 -0.00701665186365177 -0.02372313095570483 -0.028175805724352777; -8.18458504986764e-5 0.00026047030992981044 0.002289802497691762 0.018387406455085947 0.02565599325403284 0.00015427884237911047 -0.00031569585113245207 0.0002593870124130592 -0.003010993623971112 -0.017298370435408123 
-0.030415454954782983; 2.8119815738741146e-5 -3.476759438941769e-5 0.0009574903582859294 0.01057019624120716 0.027982043667649597 0.0003048226928089422 -0.0006190528295732067 0.0006321191468170644 -0.0016037972926999221 -0.009780720883014833 -0.030053340800219513; 0.0001479360772679834 -0.0003107120878708989 0.000773143738963639 0.004387150835505965 0.024989326334325282 0.0005280377046425064 -0.0010805222613296359 0.0011565468895345904 -0.001566352062156187 -0.003597416062460945 -0.026121623200028754; 0.00021004983417783173 -0.0004551691476598393 0.0008499574837661109 0.0007616217581131006 0.018807628432066813 0.0006309976513206845 -0.001297039582878229 0.001412922119173439 -0.0017117583135044256 3.507167268904471e-5 -0.01963863741414216]

```

```julia
show(ForwardDiff.jacobian(c2_enclosed_1, start_vec_1))
[-0.0 -0.0 -0.0 -0.0 -0.0 -1.0 -7.796343665038751e-17 7.796343665038751e-17 -7.796343665038751e-17 7.796343665038751e-17 -7.796343665038752e-17; -0.0 -0.0 -0.0 -0.0 -0.0 -0.8583936913341398 -0.16979215872543427 0.03951684512535693 -0.01734128669361902 0.00971155653300728 -0.006202764529913599; -0.0 -0.0 -0.0 -0.0 -0.0 -0.5045511524271047 -0.5676200464804928 0.09980132685371298 -0.04204592936892537 0.02322741878181038 -0.014743377830662166; -0.0 -0.0 -0.0 -0.0 -0.0 -0.10929240478705181 -0.9318615566053887 0.05550272594201379 -0.021618277869966212 0.011655937837723798 -0.007319292920835933; -0.0 -0.0 -0.0 -0.0 -0.0 0.15591488063143982 -1.0205337641330607 -0.17540424071036992 0.05939614500245334 -0.030840306058966184 0.0190592044235377; -0.0 -0.0 -0.0 -0.0 -0.0 0.2122065907891938 -0.7639437268410977 -0.5456740906007841 0.14147106052612918 -0.06944942971282705 0.04197493004621416; -0.0 -0.0 -0.0 -0.0 -0.0 0.10394325375429327 -0.3006929840749198 -0.8862530056945002 0.11693616047357983 -0.05278622917929627 0.030953689537124025; -0.0 -0.0 -0.0 -0.0 -0.0 -0.046839602051593585 0.12115111146482577 -1.0076226587684283 -0.09000550982463124 0.035644977575069674 -0.020064365716127186; -0.0 -0.0 -0.0 -0.0 -0.0 -0.12613778810677617 0.3052746468466515 -0.8256291585170805 -0.4484899132685374 0.1419050116201232 -0.07552532842983689; -0.0 -0.0 -0.0 -0.0 -0.0 -0.09537707681490444 0.22108072813375293 -0.4226740972526766 -0.8132150760007643 0.15965531342839331 -0.07852048446986479; -0.0 -0.0 -0.0 -0.0 -0.0 -3.8981718325193755e-17 7.796343665038751e-17 -7.796343665038752e-17 -1.0 -7.796343665038751e-17 7.796343665038751e-17; -0.0 -0.0 -0.0 -0.0 -0.0 0.07803579012128542 -0.17185232647538887 0.2466791739973288 -0.8992695813976704 -0.3326065575032478 0.12045496164717187; -0.0 -0.0 -0.0 -0.0 -0.0 0.0840918587378508 -0.18224590121112816 0.24326573420592548 -0.5504194390113868 -0.7169937429227278 0.18103496499045613; -0.0 -0.0 -0.0 -0.0 -0.0 0.025221324181627373 -0.05399244768508817 0.06844180924220367 -0.12354793584623261 -0.9711806096267133 0.07836901752861128; -0.0 -0.0 -0.0 -0.0 -0.0 -0.044547108751839926 0.0944484373055837 -0.11522155401502301 0.18190069407001316 -0.9583060955883617 -0.21353559738653752; -0.0 -0.0 -0.0 -0.0 -0.0 -0.0707355302630646 0.14882020652748656 -0.17629470619409945 0.25464790894703254 -0.6740679942715567 -0.6031134685587614; -0.0 -0.0 -0.0 -0.0 -0.0 -0.03897872015785999 0.08149452925926445 -0.09433505382742585 0.12793015846682265 -0.25513344103326535 -0.9163976657521362; -0.0 -0.0 -0.0 -0.0 -0.0 0.01928689496242076 -0.04011612458796993 0.04558401980668462 -0.058983202583488 0.10023019739711594 -0.9933705702427083; -0.0 -0.0 -0.0 -0.0 -0.0 0.05606123915856718 -0.11610410041646443 0.1299479915631017 -0.16217715613728365 0.2484416008911579 -0.7859354489729895; -0.0 -0.0 -0.0 -0.0 -0.0 0.04517861533337574 -0.0932266250988491 0.10304339853853134 -0.12497685927470242 0.1780294981420714 -0.3919501234129182]

```

From what I understand the answers seem to be pretty much the same. Could you please make a comment on this

---

<div class="post-metadata">

### Author: ![mohamed82008](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mohamed82008/32/18171_2.png) [@mohamed82008](https://discourse.julialang.org/u/mohamed82008)
#### Post date: [December 6, 2023, 5:22am UTC](https://discourse.julialang.org/t/nonconvex-jl-reproduces-the-initial-vector-as-the-optimized-vector/107094/14 "2023-12-06T05:22:50Z")

</div>

If the gradients and Jacobians are the same, it is possible Nonconvex is using a different set of tolerances than R. See [https://github.com/JuliaNonconvex/NonconvexNLopt.jl/blob/master/src/NonconvexNLopt.jl#L114](https://github.com/JuliaNonconvex/NonconvexNLopt.jl/blob/master/src/NonconvexNLopt.jl#L114) for the default values. You can change these values using keyword arguments when constructing the options. I think R uses different options if I am looking at the right place [https://github.com/astamm/nloptr/blob/1264f8c93035956b19300b519214bf30bbb9fd0b/R/nloptions.R#L38](https://github.com/astamm/nloptr/blob/1264f8c93035956b19300b519214bf30bbb9fd0b/R/nloptions.R#L38).

---

<div class="post-metadata">

### Author: ![AP\_profile](https://avatars.discourse-cdn.com/v4/letter/a/85f322/32.png) [@AP\_profile](https://discourse.julialang.org/u/AP_profile)
#### Post date: [December 6, 2023, 5:45am UTC](https://discourse.julialang.org/t/nonconvex-jl-reproduces-the-initial-vector-as-the-optimized-vector/107094/15 "2023-12-06T05:45:21Z")

</div>

I did try changing the options but it doesn’t seem to make any difference.

```julia
alg = NLoptAlg(:LD_SLSQP)
options = NLoptOptions(xtol_rel = 1e-8, # stop on small optimization step
maxeval = 2000, # stop on this many function evaluations
ftol_rel = 0.0, # stop on change times function value
ftol_abs = 0.0, # stop on small change of function value
stopval = -Inf)

```

I really do appreciate your effort on this matter. Thank you very much

---

<div class="post-metadata">

### Author: ![mohamed82008](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mohamed82008/32/18171_2.png) [@mohamed82008](https://discourse.julialang.org/u/mohamed82008)
#### Post date: [December 6, 2023, 5:51am UTC](https://discourse.julialang.org/t/nonconvex-jl-reproduces-the-initial-vector-as-the-optimized-vector/107094/16 "2023-12-06T05:51:10Z")

</div>

Try setting `xtol_abs` to 0 as well.

---

<div class="post-metadata">

### Author: ![AP\_profile](https://avatars.discourse-cdn.com/v4/letter/a/85f322/32.png) [@AP\_profile](https://discourse.julialang.org/u/AP_profile)
#### Post date: [December 6, 2023, 5:58am UTC](https://discourse.julialang.org/t/nonconvex-jl-reproduces-the-initial-vector-as-the-optimized-vector/107094/17 "2023-12-06T05:58:12Z")

</div>

Still gives the 0 vector

```julia
alg = NLoptAlg(:LD_SLSQP)
options = NLoptOptions(xtol_rel = 0, # stop on small optimization step
maxeval = 2000, # stop on this many function evaluations
ftol_rel = 0.0, # stop on change times function value
ftol_abs = 0.0, # stop on small change of function value
stopval = -Inf)

nc_1 = Nonconvex.optimize(ad_model_1, alg, start_vec_1, options = options)
show(nc_1.minimizer)
nc_1.minimum
show(nc_1.minimizer)

```

output

```julia
NLoptAlg{Nothing}(:LD_SLSQP, nothing)

NLoptOptions{NamedTuple{(:suboptions, :maxeval, :stopval, :ftol_rel, :ftol_abs, :xtol_rel, :xtol_abs), Tuple{NLoptOptions{NamedTuple{(), Tuple{}}}, Int64, Float64, Float64, Float64, Int64, Float64}}}((suboptions = NLoptOptions{NamedTuple{(), Tuple{}}}(NamedTuple()), maxeval = 2000, stopval = -Inf, ftol_rel = 0.0, ftol_abs = 0.0, xtol_rel = 
0, xtol_abs = 1.0e-6))

NonconvexNLopt.NLoptResult{Vector{Float64}, Float64, NLopt.Opt, Symbol, NLoptAlg{Nothing}, NLoptOptions{NamedTuple{(:suboptions, :maxeval, :stopval, :ftol_rel, :ftol_abs, :xtol_rel, :xtol_abs), Tuple{NLoptOptions{NamedTuple{(), 
Tuple{}}}, Int64, Float64, Float64, Float64, Int64, Float64}}}}([0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 0.0, Opt(LD_SLSQP, 11), :XTOL_REACHED, NLoptAlg{Nothing}(:LD_SLSQP, nothing), NLoptOptions{NamedTuple{(:suboptions, :maxeval, :stopval, :ftol_rel, :ftol_abs, :xtol_rel, :xtol_abs), Tuple{NLoptOptions{NamedTuple{(), Tuple{}}}, Int64, Float64, Float64, Float64, Int64, Float64}}}((suboptions = NLoptOptions{NamedTuple{(), Tuple{}}}(NamedTuple()), maxeval = 2000, stopval = -Inf, ftol_rel = 0.0, ftol_abs = 0.0, xtol_rel = 0, xtol_abs = 1.0e-6)), 16)  

[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
0.0     

[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]

```

---

<div class="post-metadata">

### Author: ![mohamed82008](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mohamed82008/32/18171_2.png) [@mohamed82008](https://discourse.julialang.org/u/mohamed82008)
#### Post date: [December 6, 2023, 5:59am UTC](https://discourse.julialang.org/t/nonconvex-jl-reproduces-the-initial-vector-as-the-optimized-vector/107094/18 "2023-12-06T05:59:23Z")

</div>

what’s the output of `nc_1.status`?

---

<div class="post-metadata">

### Author: ![AP\_profile](https://avatars.discourse-cdn.com/v4/letter/a/85f322/32.png) [@AP\_profile](https://discourse.julialang.org/u/AP_profile)
#### Post date: [December 6, 2023, 6:03am UTC](https://discourse.julialang.org/t/nonconvex-jl-reproduces-the-initial-vector-as-the-optimized-vector/107094/19 "2023-12-06T06:03:51Z")

</div>

```julia
nc_1.status

```

:XTOL\_REACHED

---

<div class="post-metadata">

### Author: ![mohamed82008](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mohamed82008/32/18171_2.png) [@mohamed82008](https://discourse.julialang.org/u/mohamed82008)
#### Post date: [December 6, 2023, 6:07am UTC](https://discourse.julialang.org/t/nonconvex-jl-reproduces-the-initial-vector-as-the-optimized-vector/107094/20 "2023-12-06T06:07:53Z")

</div>

Without access to the code, I can’t come up with any more reasons for discrepancy except a model translation bug. In the R code you seem to only have a single inequality constraint, but in Julia you have 2. Is this on purpose?

[Next page](https://discourse.julialang.org/t/nonconvex-jl-reproduces-the-initial-vector-as-the-optimized-vector/107094.md?page=2)
