45 namespace Gecode {
namespace Set {
namespace RelOp {
47 template<
class View0,
class View1,
class Res>
55 ::
post(home, x0, x1, emptyset)));
62 ::
post(home, x0, x1, x2)));
68 ::
post(home, x0,x1,x2)));
77 ::
post(home,x0,cx1,x2)));
83 template<
class View0,
class View1,
class View2>
91 ::
post(home, x0, x1, emptyset)));
102 ::
post(home, x0, x1, tmp)));
108 ::
post(home, x0,x1,x2)));
117 ::
post(home,x0,cx1,x2)));
124 template<
class View0,
class View1,
class View2>
132 ::
post(home, x0, x1, emptyset)));
139 ::
post(home, x0, x1, x2)));
149 ::
post(home, x0,x1,tmp)));
162 ::
post(home,x0,cx1,tmp)));
190 template<
class View0,
class View1,
class View2>
194 if (home.
failed())
return;
197 rel_eq<View0,View1,View2>(home,
x, op, y, z);
202 rel_eq<View0,View1,SetView>(home,
x, op, y, tmp);
203 rel_op_post_lex<View2>(home,tmp,
r,z);
211 ::
post(home,tmp,z)));
212 rel_eq<View0,View1,SetView>(home,
x, op, y, tmp);
216 rel_sub<View0,View1,View2>(home,
x, op, y, z);
219 rel_sup<View0,View1,View2>(home,
x, op, y, z);
226 ::
post(home, z, tmp, emptyset)));
227 rel_eq<View0,View1,SetView>(home,
x, op, y, tmp);
bool failed(void) const
Check whether corresponding space is failed.
Propagator for negated equality
SetRelType
Common relation types for sets.
void post(Home home, Term *t, int n, FloatRelType frt, FloatVal c)
Post propagator for linear constraint over floats.
const int min
Smallest allowed integer in integer set.
void post_nocompl(Home home, ConstSetView x, SetOpType op, SetView y, SetRelType r, ConstSetView z)
Propagator for ternary union
Propagator for the subset constraint
Propagator for set less than or equal
SetOpType
Common operations for sets.
const int max
Largest allowed integer in integer set.
Propagator for the subset of union
Exception: Unknown relation passed as argument
void rel_sub(Home home, View0 x0, SetOpType op, View1 x1, View2 x2)
static const IntSet empty
Empty set.
Set view for set variables
void rel_eq(Home home, View0 x0, SetOpType op, View1 x1, Res x2)
Node * x
Pointer to corresponding Boolean expression node.
void rel_sup(Home home, View0 x0, SetOpType op, View1 x1, View2 x2)
Propagator for the superset of intersection
Gecode toplevel namespace
void post_compl(Home home, ConstSetView x, SetOpType op, SetView y, ConstSetView z)
void rel_op_post_nocompl(Home home, View0 x, SetOpType op, View1 y, SetRelType r, View2 z)
Constant view for the empty set.
Home class for posting propagators
#define GECODE_ES_FAIL(es)
Check whether execution status es is failed, and fail space home.
#define GECODE_NEVER
Assert that this command is never executed.
void rel_op_post_lex(Home home, SetView x0, SetRelType r, View x1)
#define GECODE_SET_EXPORT
Propagator for ternary intersection