Go to the documentation of this file.
40 namespace Gecode {
namespace Set {
74 unsigned int cardMin(
void)
const;
76 unsigned int cardMax(
void)
const;
89 unsigned int glbSize(
void)
const;
91 unsigned int lubSize(
void)
const;
168 template<
class Char,
class Traits>
169 std::basic_ostream<Char,Traits>&
196 unsigned int domSize;
208 unsigned int cardMin(
void)
const;
211 unsigned int cardMax(
void)
const;
224 unsigned int glbSize(
void)
const;
226 unsigned int lubSize(
void)
const;
313 template<
class Char,
class Traits>
314 std::basic_ostream<Char,Traits>&
346 unsigned int cardMin(
void)
const;
349 unsigned int cardMax(
void)
const;
362 unsigned int glbSize(
void)
const;
364 unsigned int lubSize(
void)
const;
440 template<
class Char,
class Traits>
441 std::basic_ostream<Char,Traits>&
476 unsigned int cardMin(
void)
const;
478 unsigned int cardMax(
void)
const;
491 unsigned int glbSize(
void)
const;
493 unsigned int lubSize(
void)
const;
569 template<
class Char,
class Traits>
570 std::basic_ostream<Char,Traits>&
620 unsigned int cardMin(
void)
const;
622 unsigned int cardMax(
void)
const;
635 unsigned int glbSize(
void)
const;
637 unsigned int lubSize(
void)
const;
745 template<
class Char,
class Traits>
746 std::basic_ostream<Char,Traits>&
791 unsigned int cardMin(
void)
const;
793 unsigned int cardMax(
void)
const;
806 unsigned int glbSize(
void)
const;
808 unsigned int lubSize(
void)
const;
914 template<
class Char,
class Traits,
class View>
915 std::basic_ostream<Char,Traits>&
973 unsigned int cardMin(
void)
const;
975 unsigned int cardMax(
void)
const;
988 unsigned int glbSize(
void)
const;
990 unsigned int lubSize(
void)
const;
1115 template<
class Char,
class Traits,
class View>
1116 std::basic_ostream<Char,Traits>&
1124 template<
class View>
1128 template<
class View>
1136 template<
class View>
1153 template<
class View>
bool contains(int i) const
Test whether i is in the greatest lower bound.
ModEvent intersect(Space &home, int i, int j)
Update least upper bound to contain at most all elements between and including i and j.
GlbDiffRanges(const CachedView< View > &x)
Constructor.
ModEvent include(Space &home, int i, int j)
Update greatest lower bound to include all elements between and including i and j.
LUBndSet lubCache
The cached least upper bound.
bool notContains(int i) const
Test whether i is not in the least upper bound.
ModEvent intersectI(Space &home, I &iter)
Intersect least upper bound with range sequence described by i.
int lubMax(void) const
Return maximum of the least upper bound.
unsigned int lubSize(void) const
Return the number of elements in the least upper bound.
int glbMin(void) const
Return minimum of the greatest lower bound.
unsigned int cardMin(void) const
Return minimum cardinality.
int lubMinN(unsigned int n) const
Return n-th smallest element of the least upper bound.
LubRanges< View > lr
Upper bound iterator.
Post propagator for SetVar x
unsigned int cardMin(void) const
Return minimum cardinality.
unsigned int cardMax(void) const
Return maximum cardinality.
Post propagator for SetVar SetOpType SetVar y
bool glbAny(const Delta &d) const
Test whether arbitrary values got pruned from glb.
bool lubAny(const Delta &d) const
Test whether arbitrary values got pruned from lub.
static ModEvent modevent(const Delta &d)
Return modification event.
int lubMinN(unsigned int n) const
Return n-th smallest element of the least upper bound.
unsigned int cardMax(void) const
Return maximum cardinality.
bool lubAny(const Delta &d) const
Test whether arbitrary values got pruned from lub.
ModEvent exclude(Space &home, View &x, int s)
Prune view x to exclude all values from s.
ModEvent intersectI(Space &home, I &iter)
Intersect least upper bound with range sequence described by i.
SetView(void)
Default constructor.
bool notContains(int i) const
Test whether i is not in the least upper bound.
int lubMinN(unsigned int n) const
Return n-th smallest element of the least upper bound.
void cacheGlb(Space &home)
Update greatest lower bound cache to current domain.
unsigned int cardMax(void) const
Return maximum cardinality.
ModEvent includeI(Space &home, I &i)
Include range sequence described by i in greatest lower bound.
int lubMin(void) const
Return minimum of the least upper bound.
int glbMax(void) const
Return maximum of the greatest lower bound.
unsigned int cardMax(void) const
Return maximum cardinality.
unsigned int lubSize(void) const
Return the number of elements in the least upper bound.
ModEvent excludeI(Space &home, I &i)
Remove range sequence described by i from least upper bound.
unsigned int size(I &i)
Size of all ranges of range iterator i.
bool contains(int i) const
Test whether i is in the greatest lower bound.
unsigned int cardMax(void) const
Return maximum cardinality.
void cacheLub(Space &home)
Update least upper bound cache to current domain.
ModEvent excludeI(Space &home, I &i)
Remove range sequence described by i from least upper bound.
int lubMin(void) const
Return minimum of the least upper bound.
UniverseView(void)
Default constructor.
ModEvent excludeI(Space &home, I &i)
Remove range sequence described by i from least upper bound.
unsigned int unknownSize(void) const
Return the number of unknown elements.
ModEvent intersect(Space &home, int i, int j)
Update least upper bound to contain at most all elements between and including i and j.
unsigned int unknownSize(void) const
Return the number of unknown elements.
ModEvent intersectI(Space &home, I &iter)
Intersect least upper bound with range sequence described by i.
static ModEvent me(const ModEventDelta &med)
Return modification event for view type in med.
ModEvent excludeI(Space &home, I &i)
Remove range sequence described by i from least upper bound.
static ModEventDelta med(ModEvent)
Translate modification event me to modification event delta for view.
unsigned int glbSize(void) const
Return the number of elements in the greatest lower bound.
ConstSetView(void)
Default constructor.
void subscribe(Space &home, Propagator &p, PropCond pc, bool schedule=true)
Subscribe propagator p with propagation condition pc to view.
bool lubAny(const Delta &d) const
Test whether arbitrary values got pruned from lub.
BndSetRanges cr
Cached upper bound.
unsigned int unknownSize(void) const
Return the number of unknown elements.
void subscribe(Space &home, Propagator &p, PropCond pc, bool schedule=true)
Subscribe propagator p with propagation condition pc to view.
int lubMinN(unsigned int n) const
Return n-th smallest element of the least upper bound.
bool notContains(int i) const
Test whether i is not in the least upper bound.
static ModEvent me(const ModEventDelta &med)
Return modification event for view type in med.
int glbMax(void) const
Return maximum of the greatest lower bound.
void reschedule(Space &home, Propagator &p, PropCond pc)
Re-schedule propagator p with propagation condition pc.
bool notContains(int i) const
Test whether i is not in the least upper bound.
bool glbAny(const Delta &d) const
Test whether arbitrary values got pruned from glb.
int lubMin(void) const
Return minimum of the least upper bound.
ModEvent exclude(Space &home, int i, int j)
Restrict least upper bound to not contain all elements between and including i and j.
Range iterator for difference of greatest lower bound and cache
ModEvent excludeI(Space &home, I &i)
Remove range sequence described by i from least upper bound.
bool lubAny(const Delta &d) const
Test whether arbitrary values got pruned from lub.
int glbMin(void) const
Return minimum of the greatest lower bound.
bool glbModified(void) const
Check whether greatest lower bound cache differs from current domain.
BndSetRanges cr
Cached lower bound.
ModEvent intersectI(Space &home, I &iter)
Intersect least upper bound with range sequence described by i.
static ModEvent me_settoint(ModEvent me)
Convert set variable ModEvent me to a ModEvent for integer variables.
unsigned int unknownSize(void) const
Return the number of unknown elements.
ModEvent exclude(Space &home, int i, int j)
Restrict least upper bound to not contain all elements between and including i and j.
unsigned int glbSize(void) const
Return the number of elements in the greatest lower bound.
ModEvent intersectI(Space &home, I &iter)
Intersect least upper bound with range sequence described by i.
bool operator!=(const CachedView< View > &x, const CachedView< View > &y)
unsigned int glbSize(void) const
Return the number of elements in the greatest lower bound.
ModEvent exclude(Space &home, int i, int j)
Restrict least upper bound to not contain all elements between and including i and j.
Base-class for derived views.
GLBndSet glbCache
The cached greatest lower bound.
ModEvent includeI(Space &home, I &i)
Include range sequence described by i in greatest lower bound.
Base-class for constant views.
Gecode toplevel namespace
unsigned int unknownSize(void) const
Return the number of unknown elements.
int glbMax(void) const
Return maximum of the greatest lower bound.
Base-class for propagators.
int glbMin(void) const
Return minimum of the greatest lower bound.
bool glbAny(const Delta &d) const
Test whether arbitrary values got pruned from glb.
ModEvent include(Space &home, int i, int j)
Update greatest lower bound to include all elements between and including i and j.
int lubMin(void) const
Return minimum of the least upper bound.
bool contains(int i) const
Test whether i is in the greatest lower bound.
unsigned int cardMin(void) const
Return minimum cardinality.
ModEvent intersect(Space &home, int i, int j)
Update least upper bound to contain at most all elements between and including i and j.
bool glbAny(const Delta &d) const
Test whether arbitrary values got pruned from glb.
static ModEventDelta med(ModEvent)
Translate modification event me to modification event delta for view.
int lubMinN(unsigned int n) const
Return n-th smallest element of the least upper bound.
ModEvent includeI(Space &home, I &i)
Include range sequence described by i in greatest lower bound.
CachedView(void)
Default constructor.
Generic domain change information to be supplied to advisors.
unsigned int lubSize(void) const
Return the number of elements in the least upper bound.
int lubMax(void) const
Return maximum of the least upper bound.
unsigned int unknownSize(void) const
Return the number of unknown elements.
Constant view for the empty set.
int lubMax(void) const
Return maximum of the least upper bound.
ModEvent intersect(Space &home, int i, int j)
Update least upper bound to contain at most all elements between and including i and j.
EmptyView(void)
Default constructor.
unsigned int lubSize(void) const
Return the number of elements in the least upper bound.
int glbMax(void) const
Return maximum of the greatest lower bound.
bool operator<(const ConstSetView &y) const
Whether this view comes before view y (arbitray order)
GlbRanges< View > gr
Lower bound iterator.
int lubMin(void) const
Return minimum of the least upper bound.
int lubMax(void) const
Return maximum of the least upper bound.
unsigned int lubSize(void) const
Return the number of elements in the least upper bound.
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 void schedule(Space &home, Propagator &p, ModEvent me)
Schedule propagator p with modification event me.
void cancel(Space &home, Propagator &p, PropCond pc)
Cancel subscription of propagator p with propagation condition pc to view.
bool notContains(int i) const
Test whether i is not in the least upper bound.
ModEvent includeI(Space &home, I &i)
Include range sequence described by i in greatest lower bound.
int glbMax(void) const
Return maximum of the greatest lower bound.
ModEvent intersectI(Space &home, I &iter)
Intersect least upper bound with range sequence described by i.
Range iterator for the greatest lower bound.
int glbMin(void) const
Return minimum of the greatest lower bound.
void cancel(Space &home, Propagator &p, PropCond pc)
Cancel subscription of propagator p with propagation condition pc to view.
static void schedule(Space &home, Propagator &p, ModEvent me)
Schedule propagator p with modification event me.
ModEvent exclude(Space &home, int i, int j)
Restrict least upper bound to not contain all elements between and including i and j.
unsigned int cardMin(void) const
Return minimum cardinality.
ModEvent includeI(Space &home, I &i)
Include range sequence described by i in greatest lower bound.
int glbMax(void) const
Return maximum of the greatest lower bound.
bool lubAny(const Delta &d) const
Test whether arbitrary values got pruned from lub.
void update(Space &home, ConstSetView &y)
Update this view to be a clone of view y.
ModEvent excludeI(Space &home, I &i)
Remove range sequence described by i from least upper bound.
ModEvent exclude(Space &home, int i, int j)
Restrict least upper bound to not contain all elements between and including i and j.
struct Gecode::@602::NNF::@65::@67 a
For atomic nodes.
static void schedule(Space &home, Propagator &p, ModEvent me)
Schedule propagator p with modification event me.
int ModEvent
Type for modification events.
unsigned int glbSize(void) const
Return the number of elements in the greatest lower bound.
static ModEvent modevent(const Delta &d)
Return modification event.
ModEvent excludeI(Space &home, I &i)
Remove range sequence described by i from least upper bound.
ModEvent exclude(Space &home, int i, int j)
Restrict least upper bound to not contain all elements between and including i and j.
void subscribe(Space &home, Propagator &p, PropCond pc, bool schedule=true)
Subscribe propagator p with propagation condition pc to view.
ComplementView(void)
Default constructor.
static ModEvent me(const ModEventDelta &med)
Return modification event for view type in med.
int PropCond
Type for propagation conditions.
bool operator==(const CachedView< View > &x, const CachedView< View > &y)
bool notContains(int i) const
Test whether i is not in the least upper bound.
static PropCond pc_settoint(PropCond pc)
Convert set variable PropCond pc to a PropCond for integer variables.
bool contains(int i) const
Test whether i is in the greatest lower bound.
Range iterator for difference of least upper bound and cache
int glbMin(void) const
Return minimum of the greatest lower bound.
bool glbAny(const Delta &d) const
Test whether arbitrary values got pruned from glb.
Set view for set variables
unsigned int glbSize(void) const
Return the number of elements in the greatest lower bound.
Constant view for the universe.
unsigned int lubSize(void) const
Return the number of elements in the least upper bound.
unsigned int glbSize(void) const
Return the number of elements in the greatest lower bound.
int lubMinN(unsigned int n) const
Return n-th smallest element of the least upper bound.
bool notContains(int i) const
Test whether i is not in the least upper bound.
ModEvent includeI(Space &home, I &i)
Include range sequence described by i in greatest lower bound.
unsigned int cardMin(void) const
Return minimum cardinality.
static PropCond pc_negateset(PropCond pc)
Negate the propagation condition pc.
Range iterator for the least upper bound.
LubDiffRanges(const CachedView< View > &x)
Constructor.
int glbMin(void) const
Return minimum of the greatest lower bound.
ModEvent include(Space &home, int i, int j)
Update greatest lower bound to include all elements between and including i and j.
Integer view for integer variables.
bool lubAny(const Delta &d) const
Test whether arbitrary values got pruned from lub.
void initCache(Space &home, const IntSet &s)
Initialize cache to set s.
int lubMax(void) const
Return maximum of the least upper bound.
Finite integer set variable implementation.
Range iterator for integer sets.
Growing sets of integers.
bool contains(int i) const
Test whether i is in the greatest lower bound.
ModEvent includeI(Space &home, I &i)
Include range sequence described by i in greatest lower bound.
int lubMin(void) const
Return minimum of the least upper bound.
int lubMax(void) const
Return maximum of the least upper bound.
int lubMax(void) const
Return maximum of the least upper bound.
int lubMinN(unsigned int n) const
Return n-th smallest element of the least upper bound.
static ModEvent me_negateset(ModEvent me)
Negate the modification event me.
unsigned int cardMin(void) const
Return minimum cardinality.
SingletonView(void)
Default constructor.
ModEvent include(Space &home, View &x, int s)
Prune view x to only include values from s.
bool contains(int i) const
Test whether i is in the greatest lower bound.
ModEvent intersectI(Space &home, I &iter)
Intersect least upper bound with range sequence described by i.
bool lubModified(void) const
Check whether least upper bound cache differs from current domain.
Shrinking sets of integers.
ModEvent include(Space &home, int i, int j)
Update greatest lower bound to include all elements between and including i and j.
void update(Space &home, CachedView< View > &y)
Update this view to be a clone of view y.
int n
Number of negative literals for node type.
int lubMin(void) const
Return minimum of the least upper bound.
void cancel(Space &home, Propagator &p, PropCond pc)
Cancel subscription of propagator p with propagation condition pc to view.
int ModEventDelta
Modification event deltas.
Gecode::IntArgs i({1, 2, 3, 4})
ModEvent include(Space &home, int i, int j)
Update greatest lower bound to include all elements between and including i and j.
unsigned int cardMax(void) const
Return maximum cardinality.
int glbMin(void) const
Return minimum of the greatest lower bound.
unsigned int unknownSize(void) const
Return the number of unknown elements.
static ModEvent modevent(const Delta &d)
Return modification event.
unsigned int lubSize(void) const
Return the number of elements in the least upper bound.
int p
Number of positive literals for node type.
static ModEvent me_inttoset(ModEvent me)
Convert integer variable ModEvent me to a ModEvent for set variables.
unsigned int glbSize(void) const
Return the number of elements in the greatest lower bound.
ModEvent intersect(Space &home, int i, int j)
Update least upper bound to contain at most all elements between and including i and j.
bool contains(int i) const
Test whether i is in the greatest lower bound.
Base-class for variable implementation views.
unsigned int cardMin(void) const
Return minimum cardinality.
ModEvent intersect(Space &home, int i, int j)
Update least upper bound to contain at most all elements between and including i and j.
unsigned int cardMax(void) const
Return maximum cardinality.
int glbMax(void) const
Return maximum of the greatest lower bound.
static ModEvent modevent(const Delta &d)
Return modification event.
FloatVal intersect(const FloatVal &x, const FloatVal &y)
bool glbAny(const Delta &d) const
Test whether arbitrary values got pruned from glb.
ModEvent include(Space &home, int i, int j)
Update greatest lower bound to include all elements between and including i and j.
bool lubAny(const Delta &d) const
Test whether arbitrary values got pruned from lub.
bool glbAny(const Delta &d) const
Test whether arbitrary values got pruned from glb.