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
struct Gecode::@602::NNF::@65::@66 b
For binary nodes (and, or, eqv)
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)
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.
Exception: Unknown operation passed as argument
Post propagator for SetVar SetOpType SetVar SetRelType SetVar z
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)
struct Gecode::@602::NNF::@65::@67 a
For atomic nodes.
BoolOpType
Operation types for Booleans.
Reification specification.
Passing Boolean variables.
Boolean disjunction propagator.
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.
n-ary Boolean equality propagator
Boolean less or equal propagator.
ModEvent eq(Space &home, int n)
Restrict domain values to be equal to n.
Boolean clause propagator (disjunctive)
static ExecStatus post(Home home, ViewArray< BoolView > &x, int pm2)
Post propagator .
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