# How to implement a conditional over an exogenous parameter in a non linear constraint in JuMP?

**URL:** https://discourse.julialang.org/t/how-to-implement-a-conditional-over-an-exogenous-parameter-in-a-non-linear-constraint-in-jump/82177
**Category:** Optimization (Mathematical)
**Tags:** jump
**Created:** [June 3, 2022, 10:12am UTC](https://discourse.julialang.org/t/how-to-implement-a-conditional-over-an-exogenous-parameter-in-a-non-linear-constraint-in-jump/82177 "2022-06-03T10:12:05Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![sylvaticus](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sylvaticus/32/203883_2.png) [@sylvaticus](https://discourse.julialang.org/u/sylvaticus)
#### Post date: [June 3, 2022, 10:12am UTC](https://discourse.julialang.org/t/how-to-implement-a-conditional-over-an-exogenous-parameter-in-a-non-linear-constraint-in-jump/82177/1 "2022-06-03T10:12:05Z")

</div>

I need to add a condition over an exogenous parameter. These seems not to work:

```julia
@NLconstraint(m, myConstraint[i in 1:N], x[i] == (myExogenousParameter[i] == 0.0 ? 0.0 : expression[i]) )

```

I found then this that seems to work, but I wonder if it is the correct approach:

```julia
parCheck(nzpar,expr) = (nzpar == 0 ? 0.0 : return expr)
register(m, :parCheck, 2, parCheck, autodiff=true)

@NLconstraint(m, myConstraint[i in 1:N], x[i] == parCheck(myExogenousParameter[i],expression[i]) )

```

---

<div class="post-metadata">

### Author: ![jd-foster](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jd-foster/32/35824_2.png) [@jd-foster](https://discourse.julialang.org/u/jd-foster)
#### Post date: [June 3, 2022, 12:14pm UTC](https://discourse.julialang.org/t/how-to-implement-a-conditional-over-an-exogenous-parameter-in-a-non-linear-constraint-in-jump/82177/2 "2022-06-03T12:14:00Z")

</div>

How about using `ifelse`?

See [How to implement a piece-wise defined function in JuMP - #4 by odow](https://discourse.julialang.org/t/how-to-implement-a-piece-wise-defined-function-in-jump/76095/4)
