376 for (
int i=0; i<
x.size(); i++) {
384 for (
int i=0; i<
x.size(); i++) {
391 for (
int i=0; i<
x.size(); i++) {
396 for (
int i=0; i<
x.size(); i++) {
401 for (
int i=0; i<
x.size(); i++) {
406 for (
int i=0; i<
x.size(); i++) {
424 for (
int i=0; i<
x.size(); i++) {
430 for (
int i=0; i<
x.size(); i++) {
445 for (
int i=0; i<
x.size(); i++) {
451 for (
int i=0; i<
x.size(); i++) {
471 if ((irt !=
IRT_NQ) && (
x.size() < 2))
510 for (
int i=0; i<
x.size(); i++)
511 y[i] =
x[
x.size()-1-i];
531 ::post(home,yv,xv,
true)));
538 ::post(home,xv,yv,
true)));
545 ::post(home,yv,xv,
false)));
552 ::post(home,xv,yv,
false)));
556 for (
int i=0; i<
x.size(); i++) {
576 ViewArray<Int::ConstIntView>
577 viewarray(Space& home,
const IntArgs&
x) {
578 ViewArray<Int::ConstIntView> xv(home,
x.size());
579 for (
int i=0; i<
x.size(); i++) {
580 if ((
x[i] != 0) && (
x[i] != 1))
581 throw Int::NotZeroOne(
"Int::rel");
582 xv[i] = Int::ConstIntView(
x[i]);
601 ::post(home,yv,xv,
true)));
609 ::post(home,xv,yv,
true)));
617 ::post(home,yv,xv,
false)));
625 ::post(home,xv,yv,
false)));
629 if (
x.size() !=
y.size()) {
632 for (
int i=0; i<
x.size(); i++)
652 rel(home,
y,irt,
x,ipl);
782 for (
int i=0; i<m; i++) {
803 for (
int i=
x.size()-1; i--; )
814 for (
int i=0; i<
x.size(); i++)
823 for (
int i=0; i<
x.size(); i++)
838 if ((n < 0) || (n > 1))
847 for (
int i=0; i<m; i++) {
853 for (
int i=0; i<m; i++) {
860 for (
int i=0; i<m; i++) {
873 for (
int i=m-1; i--; )
878 for (
int i=
x.size()-1; i--; )
907 if ((n < 0) || (n > 1))
914 for (
int i=0; i<
x.size(); i++) {
922 for (
int i=0; i<
x.size(); i++) {
925 for (
int i=0; i<
y.size(); i++) {
932 for (
int i=0; i<
x.size(); i++) {
935 for (
int i=0; i<
y.size(); i++) {
941 for (
int i=0; i<
y.size(); i++) {
963 for (
int i=0; i<
x.size(); i++) {
977 for (
int i=0; i<
y.size(); i++) {
1007 using namespace Int;
Passing Boolean variables.
Boolean integer variables.
Home class for posting propagators
void fail(void)
Mark space as failed.
Passing integer arguments.
Boolean view for Boolean variables.
bool zero(void) const
Test whether view is assigned to be zero.
bool one(void) const
Test whether view is assigned to be one.
Binary Boolean disjunction propagator (true)
static ExecStatus post(Home home, BVA b0, BVB b1)
Post propagator .
Boolean clause propagator (disjunctive, true)
Boolean clause propagator (disjunctive)
Boolean equality propagator.
static ExecStatus post(Home home, BVA x0, BVB x1)
Post propagator .
Boolean equivalence propagator.
If-then-else bounds-consistent propagator.
If-then-else domain-consistent propagator.
static ExecStatus post(Home home, BV b0, BV b1)
Post propagator .
static ExecStatus post(Home home, BV b0, BV b1)
Post propagator .
static ExecStatus post(Home home, ViewArray< BV > &x)
Post propagator .
static ExecStatus post(Home home, ViewArray< BoolView > &x, int pm2)
Post propagator .
static ExecStatus post(Home home, ViewArray< VX > &x)
Post propagator .
static ExecStatus post(Home home, ViewArray< BV > &b)
Post propagator .
Boolean n-ary disjunction propagator.
static ExecStatus post(Home home, ViewArray< VX > &x, VY y)
Post propagator .
Boolean disjunction propagator.
Exception: Illegal operation passed as argument
Exception: Not 0/1 integer
Lexical ordering propagator.
Lexical disequality propagator.
static ExecStatus post(Home home, ViewArray< View > &x)
Post propagator .
Reified binary bounds consistent equality propagator.
Reified less or equal propagator.
Exception: Too few arguments available in argument array
Exception: Unknown operation passed as argument
Exception: Unknown reification mode passed as argument
Exception: Unknown relation passed as argument
Reification specification.
void unique(void)
Remove all duplicate views from array (changes element order)
#define GECODE_POST
Check for failure in a constraint post function.
#define GECODE_ES_FAIL(es)
Check whether execution status es is failed, and fail space home.
#define GECODE_ME_FAIL(me)
Check whether modification event me is failed, and fail space home.
void rel(Home home, FloatVar x0, FloatRelType frt, FloatVar x1)
Post propagator for .
void ite(Home home, BoolVar b, FloatVar x, FloatVar y, FloatVar z)
Post propagator for if-then-else constraint.
void clause(Home home, BoolOpType o, const BoolVarArgs &x, const BoolVarArgs &y, BoolVar z, IntPropLevel ipl=IPL_DEF)
Post domain consistent propagator for Boolean clause with positive variables x and negative variables...
IntRelType
Relation types for integers.
BoolOpType
Operation types for Booleans.
IntPropLevel
Propagation levels for integer propagators.
@ IRT_GQ
Greater or equal ( )
@ IRT_LQ
Less or equal ( )
@ RM_IMP
Implication for reification.
@ RM_PMI
Inverse implication for reification.
@ RM_EQV
Equivalence for reification (default)
@ IPL_BND
Bounds propagation.
Gecode toplevel namespace
Post propagator for SetVar SetOpType SetVar SetRelType r
IntPropLevel vbd(IntPropLevel ipl)
Extract value, bounds, or domain propagation from propagation level.
Post propagator for SetVar SetOpType SetVar SetRelType SetVar z
Post propagator for SetVar SetOpType SetVar y
TFE post(PropagatorGroup g)
Only post functions (but not propagators) from g are considered.
Post propagator for SetVar x