47 namespace Gecode {
namespace Int {
namespace GCC {
54 return x.card() < y.card();
72 for (
int i = k.
size();
i--; ) {
80 if ((x.
size() < smin) || (smax < x.
size()))
86 int*
v = r.alloc<
int>(k.
size());
90 for (
int i=x.
size();
i--; ) {
101 for (
int i=k.
size();
i--;)
106 int*
z = r.alloc<
int>(n_z);
110 if (k[
i].
max() == 0) {
111 z[n_z++] = k[
i].card();
117 for (
int i=x.
size();
i--;) {
124 if (Card::propagate) {
126 for (
int i = k.
size();
i--; ) {
127 t[
i].
a=1; t[
i].
x=k[
i].base();
143 if (Card::propagate) {
146 for (
int i = x.
size();
i--; ){
152 for (
int i=k.
size();
i--;)
153 if (k[
i].
min() != 1 || k[
i].max() != 1)
160 for (
int i=k.
size();
i--;)
161 if (k[
i].
min() != 0 || k[
i].max() != 1)
T * alloc(long unsigned int n)
Allocate block of n objects of type T from region.
Value iterator for array of integers
Comparison class for sorting using <.
void max(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
bool operator()(const Card &x, const Card &y)
Range iterator for integer variable views
const unsigned int card
Maximum cardinality of an integer set.
ExecStatus postSideConstraints(Home home, ViewArray< IntView > &x, ViewArray< Card > &k)
Post side constraints for the GCC.
Gecode::IntArgs i(4, 1, 2, 3, 4)
void quicksort(Type *l, Type *r, Less &less)
Standard quick sort.
Execution has resulted in failure.
Range iterator for union of iterators.
unsigned int size(I &i)
Size of all ranges of range iterator i.
Post propagator for SetVar SetOpType SetVar SetRelType SetVar z
#define GECODE_ME_CHECK(me)
Check whether modification event me is failed, and forward failure.
bool isDistinct(ViewArray< IntView > &x, ViewArray< Card > &k)
Check if GCC is equivalent to distinct.
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 y
Post propagator for SetVar x
Class for describing linear term .
Gecode toplevel namespace
Sort by increasing cardinality
void post(Home home, Term< BoolView > *t, int n, IntRelType irt, IntView x, int c, IntPropLevel)
Post propagator for linear constraint over Booleans.
int size(void) const
Return size of array (number of elements)
Home class for posting propagators