Go to the documentation of this file.
40 namespace Gecode {
namespace Set {
49 : DerivedView<View>(
y) {}
128 return x.include(home,
i);
134 return x.exclude(home,
i);
140 return x.intersect(home,
i);
146 return x.intersect(home,
i,j);
152 return x.include(home,
i,j);
158 return x.exclude(home,
i,j);
164 return x.excludeI(home,iter);
170 return x.includeI(home,iter);
176 return x.intersectI(home,iter);
183 x.subscribe(home,
p,pc,schedule);
207 return View::schedule(home,
p,me);
212 return View::me(med);
218 return View::med(me);
229 return View::modevent(
d);
271 lubCache.update(home,
y.lubCache);
272 glbCache.update(home,
y.glbCache);
286 glbCache.includeI(home,gr);
289 lubCache.intersectI(home,lr);
296 glbCache.includeI(home,gr);
303 lubCache.intersectI(home,lr);
309 return glbCache.
size() != glbSize();
315 return lubCache.
size() != lubSize();
376 template<
class Char,
class Traits,
class View>
377 std::basic_ostream<Char,Traits>&
380 return os <<
x.base();
386 : gr(
x.
base()), cr(
x.glbCache) {
393 : cr(
x.lubCache), lr(
x.
base()) {
GlbDiffRanges(const CachedView< View > &x)
Constructor.
LubRanges< View > lr
Upper bound iterator.
Post propagator for SetVar x
Post propagator for SetVar SetOpType SetVar y
ModEvent exclude(Space &home, View &x, int s)
Prune view x to exclude all values from s.
int lubMax(void) const
Return maximum element of least upper bound.
unsigned int size(void) const
Return size (cardinality) of domain.
LubRanges(void)
Default constructor.
Gecode::IntArgs i(4, 1, 2, 3, 4)
unsigned int cardMin(void) const
Return cardinality minimum.
int lubMin(void) const
Return minimum element of least upper bound.
BndSetRanges cr
Cached upper bound.
void init(const T &x)
Initialize with least upper bound ranges for set variable x.
Range iterator for integer sets.
void update(Space &home, bool share, CachedView< View > &y)
Update this view to be a clone of view y.
BndSetRanges cr
Cached lower bound.
void update(Space &home, bool share, DerivedView< View > &y)
Update this view to be a clone of view y.
Base-class for derived views.
Gecode toplevel namespace
static ModEvent me(const ModEventDelta &med)
Return modification event for view type in med.
Base-class for propagators.
unsigned int lubSize(void) const
Return number of elements in the least upper bound.
GlbRanges(void)
Default constructor.
CachedView(void)
Default constructor.
Generic domain change information to be supplied to advisors.
struct Gecode::@579::NNF::@61::@63 a
For atomic nodes.
GlbRanges< View > gr
Lower bound iterator.
int med(void) const
Return median of domain (greatest element not greater than the median)
Range iterator for computing set difference.
std::basic_ostream< Char, Traits > & operator<<(std::basic_ostream< Char, Traits > &os, const CachedView< View > &x)
static ModEvent modevent(const Delta &d)
Return modification event.
unsigned int cardMax(void) const
Return cardinality maximum.
unsigned int unknownSize(void) const
Return number of unknown elements (elements in lub but not in glb)
const double base
Base for geometric restart sequence.
int ModEvent
Type for modification events.
bool contains(int i) const
Test whether i is in greatest lower bound.
void subscribe(Space &home, Propagator &p, PropCond pc, bool schedule=true)
Subscribe propagator p with propagation condition pc to view.
int PropCond
Type for propagation conditions.
View base(void) const
Return view from which this view is derived.
unsigned int glbSize(void) const
Return number of elements in the greatest lower bound.
LubDiffRanges(const CachedView< View > &x)
Constructor.
int glbMin(void) const
Return minimum element of greatest lower bound.
void initCache(Space &home, const IntSet &s)
Initialize cache to set s.
static void schedule(Space &home, Propagator &p, ModEvent me)
Schedule propagator p with modification event me.
Range iterator for integer sets.
int glbMax(void) const
Return maximum of greatest lower bound.
ModEvent include(Space &home, View &x, int s)
Prune view x to only include values from s.
void init(const T &x)
Initialize with greatest lower bound ranges for set variable x.
int n
Number of negative literals for node type.
void cancel(Space &home, Propagator &p, PropCond pc)
Cancel subscription of propagator p with propagation condition pc to view.
int ModEventDelta
Modification event deltas.
int p
Number of positive literals for node type.
bool notContains(int i) const
Test whether i is not in the least upper bound.
FloatVal intersect(const FloatVal &x, const FloatVal &y)