Nonconvex.jl reproduces the initial vector as the optimized vector

Hi all,

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

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:

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.

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?

1 Like

PS. Please quote your code blocks. (I edited your post above to do this.)

1 Like

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.

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

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

[1.0000000000000682, 4.742999642848207, 3.821149976895435, 1.3794082941786754]

But when it is changed to

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?

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.)

1 Like

Hi thank you for your reply.

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

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!

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?

1 Like

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

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.

1 Like

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

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 :blush:

According to their docs here and here, 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.

1 Like

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

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

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

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)

  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

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]
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

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 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.

1 Like

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

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

Try setting xtol_abs to 0 as well.

Still gives the 0 vector

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

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]

what’s the output of nc_1.status?

nc_1.status

:XTOL_REACHED

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?

1 Like