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)
void post(Home home, Term< BoolView > *t, int n, IntRelType irt, IntView x, int c, IntConLevel)
Post propagator for linear constraint over Booleans.
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.
bool isDistinct(Home home, 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.
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.
#define GECODE_ME_CHECK(me)
Check whether modification event me is failed, and forward failure.
void min(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
Node * x
Pointer to corresponding Boolean expression node.
Class for describing linear term .
int size(void) const
Return size of array (number of elements)
Bounds propagation or consistency.
Gecode toplevel namespace
Sort by increasing cardinality
Home class for posting propagators