MathOptInterface.jl
MathOptInterface.jl copied to clipboard
Set request: Box or HyperRectangle
struct Box{T}
lower::Vector{T}
upper::Vector{T}
end
which is a cartesian product if Interval{T} so lower and upper are allowed to have infinite values.
This has been requested by @migarstka for a long time and once again in https://github.com/oxfordcontrol/COSMO.jl/pull/129#issuecomment-771536349
It is also often requested from people in control where it's common to work with hyper-rectangles.
We would also have the bridges:
-
BoxtoIntervals (Bridges.Constraint.Scalarize) -
IntervaltoBox(Bridges.Constraint.Vectorize) -
Zeros,NonnegativesandNonpositivestoBox(otherwise, it would be scalarized and then vectorized to many 1-dimension boxes ^^) -
BoxtoNonnegativesandNonpositives(otherwise, it would be scalarized toIntervalthen bridged to aGreaterThanand aLessThanand then vectorized and it's many small 1-dim constraints)
SCS 3.0 supports the Box cone: https://www.cvxgrp.org/scs/api/cones.html#cones