145 ::
post(home,x0,x1,nr)));
149 ::
post(home,x0,x1,nr)));
153 ::
post(home,x0,x1,nr)));
191 ::
post(home,n0,x1,nr)));
196 ::
post(home,x0,x1,nr)));
200 ::
post(home,x0,x1,nr)));
234 ::
post(home,nx,ny)));
309 ::
post(home,nx,ny)));
380 for (
int i=x.
size();
i--; ) {
382 ::
post(home,x[
i],y)));
388 for (
int i=x.
size();
i--; ) {
390 ::
post(home,x[
i],n)));
395 for (
int i=x.
size();
i--; ) {
400 for (
int i=x.
size();
i--; ) {
405 for (
int i=x.
size();
i--; ) {
410 for (
int i=x.
size();
i--; ) {
428 for (
int i=x.
size();
i--; ) {
434 for (
int i=x.
size();
i--; ) {
449 for (
int i=x.
size();
i--; ) {
455 for (
int i=x.
size();
i--; ) {
514 for (
int i=x.
size();
i--; )
518 for (
int i=x.
size()-1;
i--; )
537 ::
post(home,yv,xv,
true)));
544 ::
post(home,xv,yv,
true)));
551 ::
post(home,yv,xv,
false)));
558 ::
post(home,xv,yv,
false)));
562 for (
int i=x.
size();
i--; ) {
564 ::
post(home,x[
i],y[i])));
571 ::
post(home,xv,yv)));
585 for (
int i = x.
size();
i--; ) {
586 if ((x[
i] != 0) && (x[
i] != 1))
607 ::
post(home,yv,xv,
true)));
615 ::
post(home,xv,yv,
true)));
623 ::
post(home,yv,xv,
false)));
631 ::
post(home,xv,yv,
false)));
638 for (
int i=x.
size();
i--; )
647 ::
post(home,xv,yv)));
658 rel(home,y,irt,x,ipl);
671 ::
post(home,n0,n1,n2)));
676 ::
post(home,x0,x1,x2)));
682 ::
post(home,n0,x1,x2)));
687 ::
post(home,x0,x1,x2)));
693 ::
post(home,x0,x1,n2)));
712 ::
post(home,n0,n1)));
757 ::
post(home,n0,x1)));
788 for (
int i=m;
i--; ) {
809 for (
int i=x.
size()-1;
i--; )
814 ::
post(home,b,
a,y)));
820 for (
int i=x.
size();
i--; )
829 for (
int i=x.
size();
i--; )
844 if ((n < 0) || (n > 1))
853 for (
int i=m;
i--; ) {
859 for (
int i=m;
i--; ) {
866 for (
int i=m;
i--; ) {
879 for (
int i=m-1;
i--; )
884 for (
int i=x.
size()-1;
i--; )
913 if ((n < 0) || (n > 1))
920 for (
int i=x.
size();
i--; ) {
924 xv.unique(home); yv.
unique(home);
926 ::
post(home,xv,yv)));
928 for (
int i=x.
size();
i--; ) {
931 for (
int i=y.
size();
i--; ) {
938 for (
int i=x.
size();
i--; ) {
941 for (
int i=y.
size();
i--; ) {
947 for (
int i=y.
size();
i--; ) {
950 xv.
unique(home); yv.unique(home);
952 ::
post(home,xv,yv)));
969 for (
int i=x.
size();
i--; ) {
973 xv.unique(home); yv.
unique(home);
976 ::
post(home,xv,yv,nz)));
983 for (
int i=y.
size();
i--; ) {
986 xv.
unique(home); yv.unique(home);
988 ::
post(home,xv,yv,z)));
1003 ::
post(home,b,x,y,z)));
1006 ::
post(home,b,x,y,z)));
1013 using namespace Int;
1016 ::
post(home,b,x,y,z)));
If-then-else bounds-consistent propagator.
IntPropLevel vbd(IntPropLevel ipl)
Extract value, bounds, or domain propagation from propagation level.
bool zero(void) const
Test whether view is assigned to be zero.
Inverse implication for reification.
int size(void) const
Return size of array (number of elements)
Boolean clause propagator (disjunctive, true)
ReifyMode mode(void) const
Return reification mode.
bool one(const Gecode::FloatValArgs &a)
Check whether has only one coefficients.
BoolOpType
Operation types for Booleans.
bool one(void) const
Test whether view is assigned to be one.
Exception: Too few arguments available in argument array
Exception: Unknown operation passed as argument
Lexical disequality propagator.
Boolean clause propagator (disjunctive)
static ExecStatus post(Home home, ViewArray< BoolView > &x, int pm2)
Post propagator .
void unique(const Space &home)
Remove all duplicate views from array (changes element order)
ModEvent eq(Space &home, int n)
Restrict domain values to be equal to n.
Reified less or equal propagator.
Nary disequality propagator.
struct Gecode::@579::NNF::@61::@63 a
For atomic nodes.
Exception: Unknown relation passed as argument
Gecode::IntArgs i(4, 1, 2, 3, 4)
int n
Number of negative literals for node type.
n-ary Boolean equality propagator
Boolean equivalence propagator.
IntRelType
Relation types for integers.
Exception: Illegal operation passed as argument
Boolean disjunction propagator.
Reification specification.
struct Gecode::@579::NNF::@61::@62 b
For binary nodes (and, or, eqv)
Reified binary bounds consistent equality propagator.
Boolean equality propagator.
Post propagator for SetVar SetOpType SetVar SetRelType SetVar z
Passing integer arguments.
Passing Boolean variables.
Boolean less or equal propagator.
Boolean integer variables.
Post propagator for SetVar SetOpType SetVar SetRelType r
If-then-else domain-consistent propagator.
Boolean n-ary disjunction propagator (true)
IntPropLevel
Propagation levels for integer propagators.
Post propagator for SetVar SetOpType SetVar y
Nary Boolean less or equal propagator.
Lexical ordering propagator.
Boolean n-ary disjunction propagator.
Binary Boolean disjunction propagator (true)
void rel(Home home, FloatVar x0, FloatRelType frt, FloatVal n)
Propagates .
BoolVar var(void) const
Return Boolean control variable.
Post propagator for SetVar x
Exception: Not 0/1 integer
#define GECODE_ME_FAIL(me)
Check whether modification event me is failed, and fail space home.
void fail(void)
Mark space as failed.
Exception: Unknown reification mode passed as argument
Gecode toplevel namespace
Implication for reification.
#define GECODE_POST
Check for failure in a constraint post function.
Home class for posting propagators
#define GECODE_ES_FAIL(es)
Check whether execution status es 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.
TFE post(PropagatorGroup g)
Only post functions (but not propagators) from g are considered.
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...
Equivalence for reification (default)
IntRelType swap(IntRelType irt)
Return swapped relation type of irt.
Boolean view for Boolean variables.