```
x/(1+x)
x>0
x*inv_pos(x+1)>=lo;
```

Disciplined convex programming error:

Cannot perform the operation: {real

affine} .* {convex}

```
x/(1+x)
x>0
x*inv_pos(x+1)>=lo;
```

Disciplined convex programming error:

Cannot perform the operation: {real

affine} .* {convex}

You have to show you are modelling something convex.

Looks hard:

Given that x >= 0, and therefore, x+1 >= 0, how about multiplying both sides by `(x+1)`

to produce

`x >= lo*(x+1)`

which simplifies to

`x >= lo/(1-lo)`

x/(x+1)=1-1/(x+1)=1-inv_pos(x+1)

@jackfsuia 's formulation is a nice technique, which is useful for many problems, including when it appears inside `log`

. But in this specific case, mine produces a simpler constraint for the optimizer to handle (bound constraint vs. SOCP constraint to implement `inv_pos `

).