Go to the documentation of this file.
44 namespace Test {
namespace Set {
66 :
SetTest(
"Rel::Bin::"+str(srt0)+
"::S"+(shared0 ?
"1":
"0"),
67 shared0 ? 1 : 2,ds_33,true)
68 , srt(srt0),
shared(shared0){}
96 case SRT_LQ:
return (!xr0()) || in(minSymDiff(
x),xr1,
true);
97 case SRT_LE:
return xr0() ? in(minSymDiff(
x),xr1) : xr1();
98 case SRT_GQ:
return (!xr1()) || in(minSymDiff(
x),xr0,
true);
99 case SRT_GR:
return xr1() ? in(minSymDiff(
x),xr0) : xr0();
141 :
SetTest(
"ITE",3,ds_03,false,1) {}
144 if ((
x.intval() < 0) || (
x.intval() > 1))
146 if (
x.intval() == 1) {
RelBin _relbin_shared_gr(Gecode::SRT_GR, true)
RelBin _relbin_cmpl(Gecode::SRT_CMPL, false)
Post propagator for SetVar x
Post propagator for SetVar SetOpType SetVar y
RelBin _relbin_shared_le(Gecode::SRT_LE, true)
RelBin _relbin_sub(Gecode::SRT_SUB, false)
RelBin _relbin_shared_disj(Gecode::SRT_DISJ, true)
Gecode::IntArgs i(4, 1, 2, 3, 4)
int minSymDiff(const SetAssignment &x) const
RelBin _relbin_shared_cmpl(Gecode::SRT_CMPL, true)
RelBin _relbin_eq(Gecode::SRT_EQ, false)
@ SRT_LQ
Less or equal ( )
@ SRT_GQ
Greater or equal ( )
RelBin _relbin_shared_lq(Gecode::SRT_LQ, true)
bool subset(I &i, J &j)
Check whether range iterator i is subset of range iterator j.
RelBin _relbin_disj(Gecode::SRT_DISJ, false)
bool solution(const SetAssignment &x) const
Test whether x is solution
union Gecode::@579::NNF::@61 u
Union depending on nodetype t.
Generate all set assignments.
Test for if-then-else-constraint
RelBin _relbin_shared_sup(Gecode::SRT_SUP, true)
Gecode toplevel namespace
const int max
Largest allowed integer in integer set.
A complement iterator spezialized for the BndSet limits.
Reification specification.
struct Gecode::@579::NNF::@61::@63 a
For atomic nodes.
struct Gecode::@579::NNF::@61::@62 b
For binary nodes (and, or, eqv)
Range iterator for computing intersection (binary)
Post propagator for SetVar SetOpType SetVar SetRelType r
Range iterator for computing set difference.
Base class for tests with set constraints
bool equal(I &i, J &j)
Check whether range iterators i and j are equal.
RelBin _relbin_shared_eq(Gecode::SRT_EQ, true)
SetRelType
Common relation types for sets.
void post(Space &home, SetVarArray &x, IntVarArray &y)
Post constraint on x and y.
RelBin _relbin_shared_gq(Gecode::SRT_GQ, true)
virtual bool solution(const SetAssignment &x) const
Check whether x is a solution.
RelBin _relbin_gq(Gecode::SRT_GQ, false)
#define GECODE_NEVER
Assert that this command is never executed.
RelBin _relbin_nq(Gecode::SRT_NQ, false)
RelBin _relbin_shared_sub(Gecode::SRT_SUB, true)
Range iterator for computing union (binary)
void rel(Home home, FloatVar x0, FloatRelType frt, FloatVal n)
Propagates .
ITE(void)
Construct and register test.
RelBin _relbin_shared_nq(Gecode::SRT_NQ, true)
void channel(Home home, FloatVar x0, IntVar x1)
Post propagator for channeling a float and an integer variable .
bool shared(const IntSet &, VX)
RelBin(Gecode::SetRelType srt0, bool shared0)
Create and register test.
void post(Space &home, SetVarArray &x, IntVarArray &)
Post constraint on x.
Range iterator producing subsets of an IntSet.
void ite(Home home, BoolVar b, FloatVar x, FloatVar y, FloatVar z)
Post propagator for if-then-else constraint.
bool in(int i, CountableSetRanges &c, bool eq=false) const
Range iterator for singleton range.
Test for binary set relation constraint
RelBin _relbin_lq(Gecode::SRT_LQ, false)
RelBin _relbin_gr(Gecode::SRT_GR, false)
void post(Space &home, SetVarArray &x, IntVarArray &, Reify r)
Post reified constraint on x for b.
SetExpr inter(const SetVarArgs &x)
Intersection of set variables.
RelBin _relbin_le(Gecode::SRT_LE, false)
RelBin _relbin_sup(Gecode::SRT_SUP, false)