# JuMP nonlinear optimization constraints broken to O(1e-9)

**URL:** <https://discourse.julialang.org/t/jump-nonlinear-optimization-constraints-broken-to-o-1e-9/75182>\
**Category:** Optimization (Mathematical)\
**Tags:** jump, bug\
**Created:** [January 25, 2022, 4:15pm UTC](https://discourse.julialang.org/t/jump-nonlinear-optimization-constraints-broken-to-o-1e-9/75182 "2022-01-25T16:15:15Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![blob](https://avatars.discourse-cdn.com/v4/letter/b/ebca7d/32.png) [@blob](https://discourse.julialang.org/u/blob)\
**Post date:** [January 25, 2022, 4:42pm UTC](https://discourse.julialang.org/t/jump-nonlinear-optimization-constraints-broken-to-o-1e-9/75182/2 "2022-01-25T16:42:04Z")

</div>

It’s the question of tolerances: [Results NLP problem - #2 by blob](https://discourse.julialang.org/t/results-nlp-problem/71673/2)

As for a workaround - ipopt will always have finite tolerances, so differences will always be possible. If things are crashing, then you are probably requiring stricter tolerances in the objective function than ipopt. But `-7.761358324221462e-9` should really be treated as zero in most applications.

Maybe the performance will be better if you get rid of division:

```julia
@variable(model, 0.0<= 0.6*ξ[1:6] <= 1.0) 

```

Alternatively, if the constraints _must_ be satisfied, you can tighten them:

```julia
@variable(model, 0.00001 <= 0.6*ξ[1:6] <= 1.0-0.00001) ##You can pick a different positive value instead of 0.00001

```

---

_[View the full topic](https://discourse.julialang.org/t/jump-nonlinear-optimization-constraints-broken-to-o-1e-9/75182)._
