# Generate nonlinear expressions in an explicit loop

**URL:** <https://discourse.julialang.org/t/generate-nonlinear-expressions-in-an-explicit-loop/20447>\
**Category:** Optimization (Mathematical)\
**Tags:** question, jump\
**Created:** [February 4, 2019, 7:20pm UTC](https://discourse.julialang.org/t/generate-nonlinear-expressions-in-an-explicit-loop/20447 "2019-02-04T19:20:46Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![ncostilla](https://avatars.discourse-cdn.com/v4/letter/n/e95f7d/32.png) [@ncostilla](https://discourse.julialang.org/u/ncostilla)\
**Post date:** [February 4, 2019, 7:20pm UTC](https://discourse.julialang.org/t/generate-nonlinear-expressions-in-an-explicit-loop/20447/1 "2019-02-04T19:20:46Z")

</div>

I want to generate nonlinear expressions in an explicit loop. I know You can iterate over constraints and store references like in the next example:

```julia
@variable(m, x[1:5] >= 0)
@constraintref myCons[1:5]
for i = 1:5
  myCons[i] = @constraint(m, x[i] >= i)
end

```

so, I wonder if there is one way to do the same with nonlinear expressions?

---

<div class="post-metadata">

**Author:** ![jacob-roth](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jacob-roth/32/1862_2.png) [@jacob-roth](https://discourse.julialang.org/u/jacob-roth)\
**Post date:** [March 21, 2019, 3:09pm UTC](https://discourse.julialang.org/t/generate-nonlinear-expressions-in-an-explicit-loop/20447/2 "2019-03-21T15:09:06Z")

</div>

In `JuMP` 0.18.5, you can do:

```julia
mod = Model()
@variable(mod, x[1:5])
@constraintref nlconstr[1:5]
for i = 1:5
  nlconstr[i] = @NLconstraint(mod, x[i]^4 >= i)
end
JuMP.registercon(mod, :nlconstr, nlconstr)

```

Found out about this from issue [1090](https://github.com/JuliaOpt/JuMP.jl/issues/1090)
