46 namespace Gecode {
namespace Set {
namespace Sequence {
55 return new (home)
SeqU(home,share,*
this);
64 for (
int i=x.
size();
i--; ){
72 for (
int i=0;
i<x.
size();
i++) {
74 before.includeI(home, xiub);
86 for (
int i=x.
size();
i--; ) {
94 for (; diff(); ++diff)
114 bool modified =
false;
116 bool oldModified =
false;
119 oldModified = modified;
122 if (oldModified || modified || anybevent || cardevent)
124 if (oldModified || modified || anybevent)
126 if (oldModified || modified || ubevent)
128 if (oldModified || modified || ubevent)
130 if (oldModified || modified || anybevent)
132 if (oldModified || modified || cardevent || ubevent)
bool testSetEventAnyB(ModEvent me0, ModEvent me1, ModEvent me2)
const int min
Smallest allowed integer in integer set.
ViewArray< SetView > x
Array of views.
ExecStatus ES_SUBSUMED(Propagator &p)
ExecStatus unionNXiUB(Space &home, bool &modified, ViewArray< View0 > &x, View1 &y, GLBndSet &)
T * alloc(long unsigned int n)
Allocate block of n objects of type T from region.
int max(void) const
Return largest value of range.
void max(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
SeqU(Space &home, bool share, SeqU &p)
Constructor for cloning p.
int ModEvent
Type for modification events.
ExecStatus partitionNXiLB(Space &home, bool &modified, ViewArray< View0 > &x, View1 &y, GLBndSet &unionOfDets)
Propagation has computed fixpoint.
const int max
Largest allowed integer in integer set.
#define GECODE_ME_CHECK_MODIFIED(modified, me)
Check whether me is failed or modified, and forward failure.
ModEvent exclude(Space &home, View &x, int s)
Prune view x to exclude all values from s.
int min(void) const
Return smallest value of range.
#define GECODE_ES_CHECK(es)
Check whether execution status es is failed or subsumed, and forward failure or subsumption.
Gecode::IntArgs i(4, 1, 2, 3, 4)
Range iterator for least upper bound of set variable views
virtual Actor * copy(Space &home, bool)
Copy propagator during cloning.
Range iterator for greatest lower bound of set variable views
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
Range iterator for integer sets.
ExecStatus partitionNYUB(Space &home, bool &modified, ViewArray< View0 > &x, View1 &y, GLBndSet &unionOfDets)
ModEvent includeI(Space &home, I &i)
Include range sequence described by i in greatest lower bound.
ExecStatus propagateSeqUnion(Space &home, bool &modified, ViewArray< SetView > &x, SetView &y)
bool includeI(Space &home, I &i)
Include the set represented by i in this set.
void dispose(Space &home)
Free memory used by this set.
union Gecode::@518::NNF::@57 u
Union depending on nodetype t.
Set view for set variables
Node * x
Pointer to corresponding Boolean expression node.
bool assigned(View x, int v)
Whether x is assigned to value v.
static ModEvent me(const ModEventDelta &med)
Return modification event for view type in med.
Growing sets of integers.
ExecStatus propagateSeq(Space &home, bool &modified, bool &assigned, ViewArray< SetView > &x)
ExecStatus partitionNCard(Space &home, bool &modified, ViewArray< View0 > &x, View1 &y, GLBndSet &unionOfDets)
int size(void) const
Return size of array (number of elements)
bool testSetEventCard(ModEvent me0, ModEvent me1, ModEvent me2)
Gecode toplevel namespace
Range iterator for appending arbitrarily many iterators.
bool testSetEventUB(ModEvent me0, ModEvent me1, ModEvent me2)
Range iterator for computing set difference.
int ModEventDelta
Modification event deltas.
bool before(const ConstSetView &x, const ConstSetView &y)