45 namespace Gecode {
namespace Set {
namespace Distinct {
61 for (
int i =
x.size();
i--; ) {
70 int a = as.
val(); ++as;
74 for (
int i=
x.size();
i--;)
80 for (
int i=
x.size();
i--;) {
81 if (!
x[
i].notContains(
a)) {
88 int maxa =
static_cast<int>((bigTa.
size() - 1) / (
c - 1));
100 for (
int i=
x.size();
i--;) {
101 if (!
x[
i].contains(
a)) {
107 for (
int i =
x.size();
i--; ) {
114 for (
int i=
x.size();
i--; ) {
115 if (
x[
i].contains(
a)) {
138 for (
int i=
x.size();
i--; ) {
139 if (!
x[
i].contains(
a) && !
x[
i].notContains(
a)) {
struct Gecode::@602::NNF::@65::@67 a
For atomic nodes.
Base-class for both propagators and branchers.
Range iterator for computing set difference.
Range iterator for union of iterators.
void reset(void)
Reset iterator to start.
Value iterator from range iterator.
int val(void) const
Return current value.
ViewArray< SetView > x
Array of views.
unsigned int size(void) const
Return size.
void dispose(Space &home)
Free memory used by this set.
AtmostOne(Space &home, AtmostOne &p)
Constructor for cloning p.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
unsigned int c
Cardinality of the sets.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
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
void init(const SetView &x)
Initialize with ranges for view x.
Range iterator for least upper bound of set variable views
void init(const SetView &x)
Initialize with ranges for view x.
Propagator for negated equality
@ ES_FAILED
Execution has resulted in failure.
@ ES_NOFIX
Propagation has not computed fixpoint.
void count(Home home, const IntVarArgs &x, int n, IntRelType irt, int m, IntPropLevel)
Post propagator for .
int ModEventDelta
Modification event deltas.
#define GECODE_ME_CHECK(me)
Check whether modification event me is failed, and forward failure.
ModEvent exclude(Space &home, View &x, int s)
Prune view x to exclude all values from s.
bool subset(I &i, J &j)
Check whether range iterator i is subset of range iterator j.
unsigned int size(I &i)
Size of all ranges of range iterator i.
Gecode::IntArgs i({1, 2, 3, 4})