Types
EAGO.McCormick.MC
— Type.MC
MC{N, T <: RelaxTag} <: Real
is the McCormick (w/ (sub)gradient) structure which is used to overload standard calculations. The fields are:
cc::Float64
: Concave relaxationcv::Float64
: Convex relaxationcc_grad::SVector{N,Float64}
: (Sub)gradient of concave relaxationcv_grad::SVector{N,Float64}
: (Sub)gradient of convex relaxationIntv::Interval{Float64}
: Interval boundscnst::Bool
: Flag for whether the bounds are constant
EAGO.McCormick.RelaxTag
— Type.RelaxTag
An abstract type
the subtypes of which define the manner of relaxation that will be performed for each operator applied to the MC object. Currently, the struct NS
which specifies that standard (Mitsos 2009) are to be used is fully supported. Limited support is provided for differentiable McCormick relaxations specified by struct Diff
(Khan 2017) and struct MV struct MV
(Tsoukalas 2011.)
Constructors for MC
EAGO.McCormick.MC
— Method.MC{N,T}(y::Interval{Float64})
Constructs McCormick relaxation with convex relaxation equal to y.lo
and concave relaxation equal to y.hi
.
MC{N,T}(y::Float64)
Constructs McCormick relaxation with convex relaxation equal to y
and concave relaxation equal to y
.
MC{N,T}(cv::Float64, cc::Float64)
Constructs McCormick relaxation with convex relaxation equal to cv
and concave relaxation equal to cc
.
MC{N,T}(val::Float64, Intv::Interval{Float64}, i::Int64)
Constructs McCormick relaxation with convex relaxation equal to val
, concave relaxation equal to val
, interval bounds of Intv
, and a unit subgradient with nonzero's ith dimension of length N.