MathOptInterface.jl icon indicating copy to clipboard operation
MathOptInterface.jl copied to clipboard

Set request: Box or HyperRectangle

Open blegat opened this issue 4 years ago • 1 comments

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:

  • Box to Intervals (Bridges.Constraint.Scalarize)
  • Interval to Box (Bridges.Constraint.Vectorize)
  • Zeros, Nonnegatives and Nonpositives to Box (otherwise, it would be scalarized and then vectorized to many 1-dimension boxes ^^)
  • Box to Nonnegatives and Nonpositives (otherwise, it would be scalarized to Interval then bridged to a GreaterThan and a LessThan and then vectorized and it's many small 1-dim constraints)

blegat avatar Feb 04 '21 09:02 blegat

SCS 3.0 supports the Box cone: https://www.cvxgrp.org/scs/api/cones.html#cones

odow avatar Jun 09 '22 21:06 odow