50 return x.card() <
y.card();
68 for (
int i = k.
size(); i--; ) {
76 if ((
x.size() < smin) || (smax <
x.size()))
82 int* v =
r.alloc<
int>(k.
size());
83 for (
int i=k.
size(); i--;)
86 for (
int i=
x.size(); i--; ) {
97 for (
int i=k.
size(); i--;)
102 int*
z =
r.alloc<
int>(n_z);
105 for (
int i=0; i<k.
size(); i++)
106 if (k[i].
max() == 0) {
107 z[n_z++] = k[i].card();
113 for (
int i=
x.size(); i--;) {
120 if (Card::propagate) {
122 for (
int i = k.
size(); i--; ) {
123 t[i].
a=1; t[i].
x=k[i].base();
139 if (Card::propagate) {
142 for (
int i =
x.size(); i--; ){
148 for (
int i=k.
size(); i--;)
149 if (k[i].
min() != 1 || k[i].
max() != 1)
156 for (
int i=k.
size(); i--;)
157 if (k[i].
min() != 0 || k[i].
max() != 1)
Home class for posting propagators
Sort by increasing cardinality
bool operator()(const Card &x, const Card &y)
Class for describing linear term .
Range iterator for integer views.
Range iterator for union of iterators.
Value iterator for array of integers
Comparison class for sorting using <.
int size(void) const
Return size of array (number of elements)
void post(Home home, Term< IntView > *t, int n, IntRelType irt, int c, IntPropLevel=IPL_DEF)
Post propagator for linear constraint over integers.
#define GECODE_ME_CHECK(me)
Check whether modification event me is failed, and forward failure.
@ IPL_BND
Bounds propagation.
Global cardinality propagators (Counting)
bool isDistinct(ViewArray< IntView > &x, ViewArray< Card > &k)
Check if GCC is equivalent to distinct.
ExecStatus postSideConstraints(Home home, ViewArray< IntView > &x, ViewArray< Card > &k)
Post side constraints for the GCC.
unsigned int size(I &i)
Size of all ranges of range iterator i.
void quicksort(Type *l, Type *r, Less &less)
Standard quick sort.
Gecode toplevel namespace
Post propagator for SetVar SetOpType SetVar SetRelType r
void min(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
Post propagator for SetVar SetOpType SetVar SetRelType SetVar z
Post propagator for SetVar SetOpType SetVar y
@ ES_OK
Execution is okay.
@ ES_FAILED
Execution has resulted in failure.
void max(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
Post propagator for SetVar x