dreal3
dreal3 copied to clipboard
extend prune signature to carry a vector<box>
From void prune(box & b, ...)
to void prune(box & b, ..., vector<box> & bin)
This extension allows a pruning operator to return a set of boxes.
- It can be used to handle a disjunction in a preciser fashion. When we handle a disjunction
C_1 \/ ... \/ C_n
, the current implementation prunes a given box b using each disjunctC_i
. It gives us new boxesb_i = C_i.prune(b)
and takes a hull of allb_i
s. Instead of taking a hull of each result, a pruning operator may return a set of boxes (b_1
, ...,b_n
). - Another possible usage is in the under-approximation. When it concludes that a region
R
of a boxB
contains no solution, it represents/over-approximatesB \setminus R
as a set of boxes and return them as a result.
In ICP, after calling a pruning operation, it's supposed to check the bin
vector and add its content to ICP stack (if any).