A new bridge was added in #2754
- It rewrites
f(x) in Interval(l, u) to [f(x)] in HyperRectangle([l], [u])
- SpliltHyperRectangleBridge rewrites
[f(x)] in HyperRectangle([l], [u]) to [f(x) - l, u - f(x)] in Nonnegatives(2)
- Except if
l or u are infinite then the rows are excluded in the nonnegative constraint
- Bug is that if both
l and u are not finite, then we add Nonnegatives(0) constraint, which solvers like CSDP freak out at.
We should omit adding the constraint if all rows are free.
x-ref #2809
x-ref https://github.com/jump-dev/MathOptInterface.jl/actions/runs/16919956500