36 template<
class VX,
class VY,
class VZ,
bool shr>
42 template<
class VX,
class VY,
class VZ,
bool shr>
56 template<
class VX,
class VY,
class VZ,
bool shr>
61 template<
class VX,
class VY,
class VZ,
bool shr>
67 template<
class VX,
class VY,
class VZ,
bool shr>
Base-class for both propagators and branchers.
Home class for posting propagators
static ExecStatus post(Home home, ViewArray< VX > &x, VY y, int c)
Post propagator for .
static ExecStatus post(Home home, ViewArray< VX > &x, VY y, VZ z, int c)
Post propagator for .
virtual Actor * copy(Space &home)
Create copy during cloning.
LqView(Space &home, LqView &p)
Constructor for cloning p.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
int atleast(void) const
How many views are at least equal.
ViewArray< VX > x
Views still to count.
VZ z
View which yields result of counting.
int c
Number of views which are equal and have been eliminated.
ViewBase(Space &home, ViewBase &p)
Constructor for cloning p.
static bool sharing(const ViewArray< VX > &x, const VY &y, const VZ &z)
Test whether there is sharing of z with x or y.
ExecStatus ES_SUBSUMED(Propagator &p)
Propagator p is subsumed
int ModEventDelta
Modification event deltas.
#define GECODE_ME_CHECK(me)
Check whether modification event me is failed, and forward failure.
#define GECODE_REWRITE(prop, post)
Rewrite propagator by executing post function.
#define GECODE_ES_CHECK(es)
Check whether execution status es is failed or subsumed, and forward failure or subsumption.
ExecStatus post_false(Home home, ViewArray< VX > &x, VX y)
Post that all views in x are not equal to y.
Gecode toplevel namespace
void count(Home home, const IntVarArgs &x, int n, IntRelType irt, int m, IntPropLevel ipl=IPL_DEF)
Post propagator for .
@ ES_OK
Execution is okay.
@ ES_FIX
Propagation has computed fixpoint.
@ ES_NOFIX
Propagation has not computed fixpoint.