Go to the documentation of this file.
122 ::
post(home,x0,x1,
r.var())));
126 ::
post(home,x0,x1,
r.var())));
130 ::
post(home,x0,x1,
r.var())));
141 ::
post(home,x0,x1,nr)));
145 ::
post(home,x0,x1,nr)));
149 ::
post(home,x0,x1,nr)));
163 ::
post(home,n0,x1,
r.var())));
168 ::
post(home,x0,x1,
r.var())));
172 ::
post(home,x0,x1,
r.var())));
187 ::
post(home,n0,x1,nr)));
192 ::
post(home,x0,x1,nr)));
196 ::
post(home,x0,x1,nr)));
230 ::
post(home,nx,ny)));
305 ::
post(home,nx,ny)));
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++) {
565 ::
post(home,xv,yv)));
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++)
641 ::
post(home,xv,yv)));
652 rel(home,
y,irt,
x,ipl);
665 ::
post(home,n0,n1,n2)));
670 ::
post(home,x0,x1,x2)));
676 ::
post(home,n0,x1,x2)));
681 ::
post(home,x0,x1,x2)));
687 ::
post(home,x0,x1,n2)));
706 ::
post(home,n0,n1)));
751 ::
post(home,n0,x1)));
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++) {
920 ::
post(home,xv,yv)));
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++) {
946 ::
post(home,xv,yv)));
963 for (
int i=0;
i<
x.size();
i++) {
970 ::
post(home,xv,yv,nz)));
977 for (
int i=0;
i<
y.size();
i++) {
982 ::
post(home,xv,yv,
z)));
1007 using namespace Int;
Exception: Unknown reification mode passed as argument
Lexical ordering propagator.
Post propagator for SetVar x
IntRelType
Relation types for integers.
bool zero(void) const
Test whether view is assigned to be zero.
Post propagator for SetVar SetOpType SetVar y
void unique(void)
Remove all duplicate views from array (changes element order)
@ RM_PMI
Inverse implication for reification.
#define GECODE_ES_FAIL(es)
Check whether execution status es is failed, and fail space home.
If-then-else bounds-consistent propagator.
@ IRT_GQ
Greater or equal ( )
Exception: Unknown operation passed as argument
Post propagator for SetVar SetOpType SetVar SetRelType SetVar z
@ RM_IMP
Implication for reification.
bool one(void) const
Test whether view is assigned to be one.
IntPropLevel
Propagation levels for integer propagators.
Boolean view for Boolean variables.
Exception: Not 0/1 integer
Gecode toplevel namespace
IntPropLevel vbd(IntPropLevel ipl)
Extract value, bounds, or domain propagation from propagation level.
Reified binary bounds consistent equality propagator.
Boolean clause propagator (disjunctive, true)
BoolOpType
Operation types for Booleans.
Reification specification.
Passing Boolean variables.
Boolean disjunction propagator.
@ RM_EQV
Equivalence for reification (default)
Home class for posting propagators
Nary disequality propagator.
Exception: Illegal operation passed as argument
Boolean n-ary disjunction propagator.
Reified less or equal propagator.
Post propagator for SetVar SetOpType SetVar SetRelType r
Boolean integer variables.
Boolean equality propagator.
TFE post(PropagatorGroup g)
Only post functions (but not propagators) from g are considered.
IntRelType swap(IntRelType irt)
Return swapped relation type of irt.
Binary Boolean disjunction propagator (true)
Lexical disequality propagator.
bool one(const Gecode::FloatValArgs &a)
Check whether has only one coefficients.
struct Gecode::@602::NNF::@65::@66 b
For binary nodes (and, or, eqv)
n-ary Boolean equality propagator
Boolean less or equal propagator.
@ IPL_BND
Bounds propagation.
Boolean clause propagator (disjunctive)
static ExecStatus post(Home home, ViewArray< BoolView > &x, int pm2)
Post propagator .
struct Gecode::@602::NNF::@65::@67 a
For atomic nodes.
Nary Boolean less or equal propagator.
Boolean n-ary disjunction propagator (true)
void rel(Home home, FloatVar x0, FloatRelType frt, FloatVal n)
Propagates .
void fail(void)
Mark space as failed.
#define GECODE_POST
Check for failure in a constraint post function.
Boolean equivalence propagator.
If-then-else domain-consistent propagator.
#define GECODE_ME_FAIL(me)
Check whether modification event me is failed, and fail space home.
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, int n, IntPropLevel)
Post domain consistent propagator for Boolean clause with positive variables x and negative variables...
Exception: Unknown relation passed as argument
int n
Number of negative literals for node type.
Passing integer arguments.
Gecode::IntArgs i({1, 2, 3, 4})
Exception: Too few arguments available in argument array
@ IRT_LQ
Less or equal ( )