<div>Hi,</div>
<div> </div>
<div>First when I use IPOPT for my problem, I see the bound constraints for parameters are violated. The library throws an exception, and the program terminated. To be specific the contraint on that parameter is [0.005, 0.006], however I see the library is trying to use 0 for that parameter.</div>


<div> </div>
<div>Later, I enabled second order deriviative check, however the numerical calculation gives asymmetric Hessian matrix for contraints. The values are very different one is about 3000, the other is about 3.0e13. I spend some time on the library source code. I found the following line changes the parameter magically:</div>


<div> </div>
<div> for (Index i = 0; i &lt; nx; ++i) {</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>std::cout &lt;&lt; ivar &lt;&lt; &quot;  2.3     &quot; &lt;&lt; xref[i] &lt;&lt; &quot;  &quot; &lt;&lt; xpert[i] &lt;&lt; std::endl;</div>
<div>}</div><div><br></div><div><span style="background-color:rgb(255,0,0)">IpBlasDcopy(nx, &amp;zero, 0, gradref, 1);</span></div><div><br></div><div>for (Index i = 0; i &lt; nx; ++i) {</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>std::cout &lt;&lt; ivar &lt;&lt; &quot;  2.5     &quot; &lt;&lt; xref[i] &lt;&lt; &quot;  &quot; &lt;&lt; xpert[i] &lt;&lt; std::endl;</div>
<div>}</div><div><br></div><div>The output is:</div><div><div>1  2.3     0.0481804  0.0481804</div><div>1  2.3     700.976  700.976</div><div>1  2.3     0.0165778  0.0165778</div><div>1  2.3     2.54335  2.54335</div><div>
1  2.3     0.27909  0.27909</div><div><br></div><div>1  2.5     0.0481804 <span style="background-color:rgb(255,0,0)"> 0</span></div><div>1  2.5     700.976  700.976</div><div>1  2.5     0.0165778  0.0165778</div><div>1  2.5     2.54335  2.54335</div>
<div>1  2.5     0.27909  0.27909</div></div><div><br></div><div>IpBlasDcopy is a Fortran function, is that the problem?</div><div><br></div><div><br></div><div><br></div>