50 if (
s0.max() +
p0 <=
s1.min()) {
52 }
else if (
s1.max() +
p1 <=
s0.min()) {
54 }
else if ((
s1.min() +
p1 >
s0.max()) ||
b.zero()) {
57 }
else if ((
s0.min() +
p0 >
s1.max()) ||
b.one()) {
Home class for posting propagators
Boolean view for Boolean variables.
Integer view for integer variables.
static ExecStatus post(Home home, IntView s0, int p0, IntView s1, int p1, BoolView b)
Post order propagator.
BoolView b
Boolean view for order.
OrderProp(Space &home, OrderProp &p)
Constructor for cloning.
IntView s0
View for start times.
static ExecStatus post(Home home, V0 x0, V1 x1)
Post propagator .
Propagator(Home home)
Constructor for posting.
#define GECODE_ME_CHECK(me)
Check whether modification event me is failed, and forward failure.
Int for ordering two tasks
const Gecode::PropCond PC_INT_VAL
Propagate when a view becomes assigned (single value)
const Gecode::PropCond PC_INT_BND
Propagate when minimum or maximum of a view changes.
Gecode toplevel namespace
@ ES_OK
Execution is okay.