42 namespace Gecode {
namespace Set {
namespace Sequence {
51 return new (home)
SeqU(home,*
this);
60 for (
int i=
x.size();
i--; ) {
68 for (
int i=0;
i<
x.size();
i++) {
82 for (
int i=
x.size();
i--; ) {
90 for (; diff(); ++diff)
110 bool modified =
false;
112 bool oldModified =
false;
115 oldModified = modified;
118 if (oldModified || modified || anybevent || cardevent)
120 if (oldModified || modified || anybevent)
122 if (oldModified || modified || ubevent)
124 if (oldModified || modified || ubevent)
126 if (oldModified || modified || anybevent)
128 if (oldModified || modified || cardevent || ubevent)
133 for (
int i=
x.size();
i--;)
union Gecode::@602::NNF::@65 u
Union depending on nodetype t.
Node * x
Pointer to corresponding Boolean expression node.
Range iterator for computing set difference.
int min(void) const
Return smallest value of range.
int max(void) const
Return largest value of range.
Range iterator for appending arbitrarily many iterators.
ViewArray< SetView > x
Array of views.
ModEventDelta med
A set of modification events (used during propagation)
Range iterator for integer sets.
void dispose(Space &home)
Free memory used by this set.
Growing sets of integers.
bool includeI(Space &home, I &i)
Include the set represented by i in this set.
Range iterator for greatest lower bound of set variable views
Range iterator for least upper bound of set variable views
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
SeqU(Space &home, SeqU &p)
Constructor for cloning p.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
ExecStatus propagateSeqUnion(Space &home, bool &modified, ViewArray< SetView > &x, SetView &y)
Set view for set variables
ModEvent includeI(Space &home, I &i)
Include range sequence described by i in greatest lower bound.
static ModEvent me(const ModEventDelta &med)
Return modification event for view type in med.
@ ES_FIX
Propagation has computed fixpoint.
int ModEvent
Type for modification events.
ExecStatus ES_SUBSUMED(Propagator &p)
int ModEventDelta
Modification event deltas.
#define GECODE_ES_CHECK(es)
Check whether execution status es is failed or subsumed, and forward failure or subsumption.
#define GECODE_ME_CHECK_MODIFIED(modified, me)
Check whether me is failed or modified, and forward failure.
const FloatNum max
Largest allowed float value.
bool assigned(View x, int v)
Whether x is assigned to value v.
ModEvent exclude(Space &home, View &x, int s)
Prune view x to exclude all values from s.
const int min
Smallest allowed integer in integer set.
const int max
Largest allowed integer in integer set.
ExecStatus partitionNCard(Space &home, bool &modified, ViewArray< View0 > &x, View1 &y, GLBndSet &unionOfDets)
ExecStatus unionNXiUB(Space &home, bool &modified, ViewArray< View0 > &x, View1 &y, GLBndSet &)
ExecStatus partitionNXiLB(Space &home, bool &modified, ViewArray< View0 > &x, View1 &y, GLBndSet &unionOfDets)
ExecStatus partitionNYUB(Space &home, bool &modified, ViewArray< View0 > &x, View1 &y, GLBndSet &unionOfDets)
bool testSetEventCard(ModEvent me0, ModEvent me1, ModEvent me2)
bool testSetEventUB(ModEvent me0, ModEvent me1, ModEvent me2)
bool testSetEventAnyB(ModEvent me0, ModEvent me1, ModEvent me2)
ExecStatus propagateSeq(Space &home, bool &modified, bool &assigned, ViewArray< SetView > &x)
Gecode::IntArgs i({1, 2, 3, 4})