42 namespace Test {
namespace Set {
63 :
SetTest(
"Rel::Bin::"+str(srt0)+
"::S"+(shared0 ?
"1":
"0"),
64 shared0 ? 1 : 2,ds_33,true)
65 , srt(srt0), shared(shared0){}
67 int x1 = shared ? x[0] : x[1];
86 int x1 = shared ? x[0] : x[1];
93 case SRT_LQ:
return (!xr0()) || in(minSymDiff(x),xr1,
true);
94 case SRT_LE:
return xr0() ? in(minSymDiff(x),xr1) : xr1();
95 case SRT_GQ:
return (!xr1()) || in(minSymDiff(x),xr0,
true);
96 case SRT_GR:
return xr1() ? in(minSymDiff(x),xr0) : xr0();
RelBin _relbin_shared_le(Gecode::SRT_LE, true)
bool solution(const SetAssignment &x) const
Test whether x is solution
SetRelType
Common relation types for sets.
Range iterator for singleton range.
RelBin _relbin_le(Gecode::SRT_LE, false)
RelBin _relbin_nq(Gecode::SRT_NQ, false)
bool equal(I &i, J &j)
Check whether range iterators i and j are equal.
RelBin(Gecode::SetRelType srt0, bool shared0)
Create and register test.
RelBin _relbin_sup(Gecode::SRT_SUP, false)
RelBin _relbin_gr(Gecode::SRT_GR, false)
const int max
Largest allowed integer in integer set.
RelBin _relbin_shared_sub(Gecode::SRT_SUB, true)
RelBin _relbin_sub(Gecode::SRT_SUB, false)
RelBin _relbin_lq(Gecode::SRT_LQ, false)
int min(void) const
Return smallest value of range.
RelBin _relbin_cmpl(Gecode::SRT_CMPL, false)
Test for binary set relation constraint
void post(Space &home, SetVarArray &x, IntVarArray &)
Post constraint on x.
Gecode::IntArgs i(4, 1, 2, 3, 4)
RelBin _relbin_shared_cmpl(Gecode::SRT_CMPL, true)
Range iterator for computing intersection (binary)
RelBin _relbin_shared_disj(Gecode::SRT_DISJ, true)
int minSymDiff(const SetAssignment &x) const
A complement iterator spezialized for the BndSet limits.
void post(Space &home, SetVarArray &x, IntVarArray &, Reify r)
Post reified constraint on x for b.
Reification specification.
RelBin _relbin_shared_lq(Gecode::SRT_LQ, true)
Gecode::IntSet lub
The common superset for all domains.
bool in(int i, CountableSetRanges &c, bool eq=false) const
RelBin _relbin_shared_eq(Gecode::SRT_EQ, true)
RelBin _relbin_shared_sup(Gecode::SRT_SUP, true)
Range iterator for computing union (binary)
SetExpr inter(const SetVarArgs &x)
Intersection of set variables.
union Gecode::@518::NNF::@57 u
Union depending on nodetype t.
RelBin _relbin_eq(Gecode::SRT_EQ, false)
Node * x
Pointer to corresponding Boolean expression node.
Base class for tests with set constraints
Generate all set assignments.
void rel(Home home, FloatVar x0, FloatRelType frt, FloatVal n)
Propagates .
Range iterator producing subsets of an IntSet.
RelBin _relbin_shared_gr(Gecode::SRT_GR, true)
RelBin _relbin_shared_nq(Gecode::SRT_NQ, true)
bool subset(I &i, J &j)
Check whether range iterator i is subset of range iterator j.
bool shared(const ConstView< ViewA > &, const ConstView< ViewB > &)
Test whether views share same variable.
RelBin _relbin_shared_gq(Gecode::SRT_GQ, true)
struct Gecode::@518::NNF::@57::@58 b
For binary nodes (and, or, eqv)
Gecode toplevel namespace
Range iterator for computing set difference.
RelBin _relbin_disj(Gecode::SRT_DISJ, false)
RelBin _relbin_gq(Gecode::SRT_GQ, false)
#define GECODE_NEVER
Assert that this command is never executed.
struct Gecode::@518::NNF::@57::@59 a
For atomic nodes.