Create a separator without the use of macros using ModelingToolkit
e.g vars = @variables x y z S = Separator(vars, x^2+y^2<1) X= IntervalBox(-0.5..1.5, -0.5..1.5, -0.5..1.5) S(X)
Create a separator from a given constraint expression, written as standard Julia code.
C = @constraint x^2 + y^2 <= 1
The variables (
y, in this case) are automatically inferred. External constants can be used as e.g.
a = 3 C = x^2 + y^2 <= $a
C = 2 + y^2) A = -∞..1 # the constraint interval x = y = (0.5, 1.5) C(A, x, y) `@contractor` makes a function that takes as arguments the variables contained in the expression, in lexicographic order(x^
TODO: Hygiene for global variables, or pass in parameters
pave takes the given working list of boxes and splits them into inner and boundary lists with the given separator
pave(S::Separator, domain::IntervalBox, eps)`
Find the subset of
domain defined by the constraints specified by the separator
S. Returns (sub)pavings
boundary, i.e. lists of