ter-dom.hpp File Reference

Go to the source code of this file.

## Namespaces

namespace | Gecode
| Gecode toplevel namespace
namespace | Gecode::Int
| Finite domain integers.
namespace | Gecode::Int::Distinct
| Distinct propagators

## Macros

#define | GECODE_INT_HALL_ONE(x0, x1, x2)
| Check whether x0 forms a Hall set of cardinality one.
#define | GECODE_INT_HALL_TWO(x0, x1, x2)
| Check whether x0 and x1 form a Hall set of cardinality two.

## Macro Definition Documentation

## GECODE_INT_HALL_ONE

#define GECODE_INT_HALL_ONE | ( |  | x0,
|  |  | x1,
|  |  | x2 )

Value:
if (x0.assigned()) { \
GECODE_ME_CHECK(x1.nq(home,x0.val())); \
GECODE_ME_CHECK(x2.nq(home,x0.val())); \
if (x1.assigned()) { \
GECODE_ME_CHECK(x2.nq(home,x1.val())); \
return home.ES_SUBSUMED(*this); \
} \
if (x2.assigned()) { \
GECODE_ME_CHECK(x1.nq(home,x2.val())); \
return home.ES_SUBSUMED(*this); \
} \
return ES_FIX; \
}
Gecode::ES_FIX
@ ES_FIX
Propagation has computed fixpoint.
Definition core.hpp:477

Check whether x0 forms a Hall set of cardinality one.

Definition at line 66 of file ter-dom.hpp.

## GECODE_INT_HALL_TWO

#define GECODE_INT_HALL_TWO | ( |  | x0,
|  |  | x1,
|  |  | x2 )

Value:
if ((x0.size() == 2) && (x1.size() == 2) && \
(x0.min() == x1.min()) && (x0.max() == x1.max())) { \
GECODE_ME_CHECK(x2.nq(home,x0.min())); \
GECODE_ME_CHECK(x2.nq(home,x0.max())); \
return ES_FIX; \
}

Check whether x0 and x1 form a Hall set of cardinality two.

Definition at line 83 of file ter-dom.hpp.