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++) {
70 before.includeI(home, xiub);
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)
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.
void max(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
int ModEvent
Type for modification events.
ExecStatus partitionNXiLB(Space &home, bool &modified, ViewArray< View0 > &x, View1 &y, GLBndSet &unionOfDets)
int max(void) const
Return largest value of range.
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.
#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
Range iterator for greatest lower bound of set variable views
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
ModEventDelta med
A set of modification events (used during propagation)
Range iterator for integer sets.
ExecStatus partitionNYUB(Space &home, bool &modified, ViewArray< View0 > &x, View1 &y, GLBndSet &unionOfDets)
union Gecode::@585::NNF::@62 u
Union depending on nodetype t.
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.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
Post propagator for SetVar SetOpType SetVar SetRelType r
Set view for set variables
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)
SeqU(Space &home, SeqU &p)
Constructor for cloning p.
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 min(void) const
Return smallest value of range.
int ModEventDelta
Modification event deltas.
int size(void) const
Return size of array (number of elements)
bool before(const ConstSetView &x, const ConstSetView &y)