An initial implementation treated MC structures with a cv or cc value of NaN as a NaN McCormick operator and propagated this through the function much like an empty set in interval arithmetic. For functions in which the relaxation is effectively unbounded on one side, this can set the relaxation of the other side to NaN which becomes an issue for things like bounding the SSE with ODE integrators. New proposed logic:
if f(x) is not bounded above on the closed set X, the resulting cv = f(cv) and cc = Inf.
if a line segment constitutes the convex relaxation of concave increasing f(x) and X is unbounded above then the resulting cv is the f(xL) and cc is evaluated as the standard f(mid3(cv, cc, eps).
Use NaN only for true domain violations of computed relaxations (via an NaN math type interface).
An initial implementation treated MC structures with a
cv
orcc
value ofNaN
as aNaN
McCormick operator and propagated this through the function much like an empty set in interval arithmetic. For functions in which the relaxation is effectively unbounded on one side, this can set the relaxation of the other side to NaN which becomes an issue for things like bounding the SSE with ODE integrators. New proposed logic:f(x)
is not bounded above on the closed setX
, the resulting cv = f(cv) and cc = Inf.f(x)
and X is unbounded above then the resultingcv
is thef(xL)
andcc
is evaluated as the standardf(mid3(cv, cc, eps)
.