44 namespace Gecode {
namespace Set {
78 unsigned int cardMin(
void)
const;
80 unsigned int cardMax(
void)
const;
93 unsigned int glbSize(
void)
const;
95 unsigned int lubSize(
void)
const;
172 template<
class Char,
class Traits>
173 std::basic_ostream<Char,Traits>&
174 operator <<(std::basic_ostream<Char,Traits>& os,
const SetView&
x);
200 unsigned int domSize;
212 unsigned int cardMin(
void)
const;
215 unsigned int cardMax(
void)
const;
228 unsigned int glbSize(
void)
const;
230 unsigned int lubSize(
void)
const;
312 template<
class Char,
class Traits>
313 std::basic_ostream<Char,Traits>&
314 operator <<(std::basic_ostream<Char,Traits>& os,
const ConstSetView&
x);
345 unsigned int cardMin(
void)
const;
348 unsigned int cardMax(
void)
const;
361 unsigned int glbSize(
void)
const;
363 unsigned int lubSize(
void)
const;
439 template<
class Char,
class Traits>
440 std::basic_ostream<Char,Traits>&
441 operator <<(std::basic_ostream<Char,Traits>& os,
const EmptyView&
x);
473 unsigned int cardMin(
void)
const;
475 unsigned int cardMax(
void)
const;
488 unsigned int glbSize(
void)
const;
490 unsigned int lubSize(
void)
const;
566 template<
class Char,
class Traits>
567 std::basic_ostream<Char,Traits>&
568 operator <<(std::basic_ostream<Char,Traits>& os,
const UniverseView&
x);
616 unsigned int cardMin(
void)
const;
618 unsigned int cardMax(
void)
const;
631 unsigned int glbSize(
void)
const;
633 unsigned int lubSize(
void)
const;
741 template<
class Char,
class Traits>
742 std::basic_ostream<Char,Traits>&
743 operator <<(std::basic_ostream<Char,Traits>& os,
const SingletonView&
x);
779 unsigned int cardMin(
void)
const;
781 unsigned int cardMax(
void)
const;
794 unsigned int glbSize(
void)
const;
796 unsigned int lubSize(
void)
const;
902 template<
class Char,
class Traits,
class View>
903 std::basic_ostream<Char,Traits>&
904 operator <<(std::basic_ostream<Char,Traits>& os,
949 unsigned int cardMin(
void)
const;
951 unsigned int cardMax(
void)
const;
964 unsigned int glbSize(
void)
const;
966 unsigned int lubSize(
void)
const;
1091 template<
class Char,
class Traits,
class View>
1092 std::basic_ostream<Char,Traits>&
1093 operator <<(std::basic_ostream<Char,Traits>& os,
1100 template<
class View>
1117 template<
class View>
unsigned int glbSize(void) const
Return the number of elements in the greatest lower bound.
unsigned int cardMax(void) const
Return maximum cardinality.
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.
void cacheGlb(Space &home)
Update greatest lower bound cache to current domain.
static ModEvent modevent(const Delta &d)
Return modification event.
bool notContains(int i) const
Test whether i is not in the least upper bound.
bool contains(int i) const
Test whether i is in the greatest lower bound.
static ModEvent modevent(const Delta &d)
Return modification event.
static ModEventDelta med(ModEvent)
Translate modification event me to modification event delta for view.
unsigned int cardMax(void) const
Return maximum cardinality.
static ModEvent modevent(const Delta &d)
Return modification event.
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, bool share, ConstSetView &y)
Update this view to be a clone of view y.
ModEvent includeI(Space &home, I &i)
Include range sequence described by i in greatest lower bound.
ComplementView(void)
Default constructor.
ModEvent includeI(Space &home, I &i)
Include range sequence described by i in greatest lower bound.
unsigned int cardMin(void) const
Return minimum cardinality.
ConstSetView(void)
Default constructor.
int glbMax(void) const
Return maximum of the greatest lower bound.
unsigned int unknownSize(void) const
Return the number of unknown elements.
unsigned int cardMax(void) const
Return maximum cardinality.
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.
int lubMinN(unsigned int n) const
Return n-th smallest element of the least upper bound.
int lubMin(void) const
Return minimum of the least upper bound.
int glbMin(void) const
Return minimum of the greatest lower bound.
int glbMin(void) const
Return minimum of the greatest lower bound.
unsigned int cardMax(void) const
Return maximum cardinality.
unsigned int cardMin(void) const
Return minimum cardinality.
Shrinking sets of integers.
SingletonView(void)
Default constructor.
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.
bool glbAny(const Delta &d) const
Test whether arbitrary values got pruned from glb.
static void schedule(Space &home, Propagator &p, ModEvent me)
Schedule propagator p with modification event me.
int ModEvent
Type for modification events.
ModEvent include(Space &home, int i, int j)
Update greatest lower bound to include all elements between and including i and j.
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.
Base-class for propagators.
int glbMin(void) const
Return minimum of the greatest lower bound.
unsigned int unknownSize(void) const
Return the number of unknown elements.
int lubMinN(unsigned int n) const
Return n-th smallest element of the least upper bound.
ModEvent intersectI(Space &home, I &iter)
Intersect least upper bound with range sequence described by i.
int glbMin(void) const
Return minimum of the greatest lower 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...
bool lubAny(const Delta &d) const
Test whether arbitrary values got pruned from lub.
BndSetRanges cr
Cached lower bound.
unsigned int cardMin(void) const
Return minimum cardinality.
bool glbAny(const Delta &d) const
Test whether arbitrary values got pruned from glb.
unsigned int unknownSize(void) const
Return the number of unknown elements.
Range iterator for the greatest lower bound.
ModEvent intersectI(Space &home, I &iter)
Intersect least upper bound with range sequence described by i.
unsigned int glbSize(void) const
Return the number of elements in the greatest lower bound.
Finite integer set variable implementation.
ModEvent intersect(Space &home, int i, int j)
Update least upper bound to contain at most all elements between and including i and j...
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.
Base-class for constant views.
bool glbAny(const Delta &d) const
Test whether arbitrary values got pruned from glb.
unsigned int glbSize(void) const
Return the number of elements in the greatest lower bound.
static PropCond pc_settoint(PropCond pc)
Convert set variable PropCond pc to a PropCond for integer variables.
static ModEvent modevent(const Delta &d)
Return modification event.
Base-class for derived views.
Range iterator for the least upper bound.
unsigned int lubSize(void) const
Return the number of elements in the least upper bound.
UniverseView(void)
Default constructor.
ModEvent exclude(Space &home, View &x, int s)
Prune view x to exclude all values from s.
int glbMax(void) const
Return maximum of the greatest lower bound.
int lubMin(void) const
Return minimum of the least upper bound.
ModEvent excludeI(Space &home, I &i)
Remove range sequence described by i from least upper bound.
bool glbAny(const Delta &d) const
Test whether arbitrary values got pruned from glb.
int glbMin(void) const
Return minimum of the greatest lower bound.
unsigned int unknownSize(void) const
Return the number of unknown elements.
unsigned int lubSize(void) const
Return the number of elements in the least upper bound.
unsigned int lubSize(void) const
Return the number of elements in the least upper bound.
int lubMinN(unsigned int n) const
Return n-th smallest element of the least upper bound.
bool glbAny(const Delta &d) const
Test whether arbitrary values got pruned from glb.
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.
struct Gecode::@579::NNF::@61::@63 a
For atomic nodes.
int lubMax(void) const
Return maximum of the least upper bound.
GlbDiffRanges(const CachedView< View > &x)
Constructor.
ModEvent excludeI(Space &home, I &i)
Remove range sequence described by i from least upper 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 p
Number of positive literals for node type.
unsigned int glbSize(void) const
Return the number of elements in the greatest lower bound.
Gecode::IntArgs i(4, 1, 2, 3, 4)
int glbMax(void) const
Return maximum of the greatest lower bound.
int n
Number of negative literals for node type.
ModEvent exclude(Space &home, int i, int j)
Restrict least upper bound to not contain all elements between and including i and j...
void cancel(Space &home, Propagator &p, PropCond pc)
Cancel subscription of propagator p with propagation condition pc to view.
ModEvent intersect(Space &home, int i, int j)
Update least upper bound to contain at most all elements between and including i and j...
static ModEventDelta med(ModEvent)
Translate modification event me to modification event delta for view.
static ModEvent me(const ModEventDelta &med)
Return modification event for view type in med.
unsigned int glbSize(void) const
Return the number of elements in the greatest lower bound.
Constant view for the universe.
FloatVal intersect(const FloatVal &x, const FloatVal &y)
static ModEvent me_negateset(ModEvent me)
Negate the modification event me.
int lubMax(void) const
Return maximum of the least upper bound.
unsigned int cardMin(void) const
Return minimum cardinality.
int PropCond
Type for propagation conditions.
static ModEvent me_inttoset(ModEvent me)
Convert integer variable ModEvent me to a ModEvent for set variables.
SetView(void)
Default constructor.
int glbMax(void) const
Return maximum of the greatest lower bound.
GLBndSet glbCache
The cached greatest lower bound.
int lubMax(void) const
Return maximum of the least upper bound.
bool glbAny(const Delta &d) const
Test whether arbitrary values got pruned from glb.
unsigned int size(I &i)
Size of all ranges of range iterator i.
int glbMax(void) const
Return maximum of the greatest lower bound.
EmptyView(void)
Default constructor.
Range iterator for integer sets.
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 variable implementation views.
ModEvent excludeI(Space &home, I &i)
Remove range sequence described by i from 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.
CachedView(void)
Default constructor.
Range iterator for difference of greatest lower bound and cache
ModEvent includeI(Space &home, I &i)
Include range sequence described by i in greatest lower bound.
ModEvent includeI(Space &home, I &i)
Include range sequence described by i in greatest lower bound.
void cancel(Space &home, Propagator &p, PropCond pc)
Cancel subscription of propagator p with propagation condition pc to view.
ModEvent includeI(Space &home, I &i)
Include range sequence described by i in greatest lower bound.
unsigned int lubSize(void) const
Return the number of elements in the least upper bound.
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.
bool contains(int i) const
Test whether i is in the greatest lower bound.
bool same(const ConstSetView &x, const ConstSetView &y)
ModEvent excludeI(Space &home, I &i)
Remove range sequence described by i from 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...
ModEvent intersectI(Space &home, I &iter)
Intersect least upper bound with range sequence described by i.
void update(Space &home, bool share, CachedView< View > &y)
Update this view to be a clone of view y.
int med(void) const
Return median of domain (greatest element not greater than the median)
ModEvent exclude(Space &home, int i, int j)
Restrict least upper bound to not contain all elements between and including i and j...
bool glbModified(void) const
Check whether greatest lower bound cache differs from current domain.
bool contains(int i) const
Test whether i is in the greatest lower bound.
unsigned int unknownSize(void) const
Return the number of unknown elements.
Set view for set variables
ModEvent excludeI(Space &home, I &i)
Remove range sequence described by i from least upper bound.
bool glbAny(const Delta &d) const
Test whether arbitrary values got pruned from glb.
Integer view for integer variables.
int lubMin(void) const
Return minimum of the least upper bound.
void subscribe(Space &home, Propagator &p, PropCond pc, bool schedule=true)
Subscribe propagator p with propagation condition pc to view.
Post propagator for SetVar SetOpType SetVar y
void subscribe(Space &home, Propagator &p, PropCond pc, bool schedule=true)
Subscribe propagator p with propagation condition pc to view.
void cacheLub(Space &home)
Update least upper bound cache to current domain.
int lubMinN(unsigned int n) const
Return n-th smallest element of the least upper bound.
Generic domain change information to be supplied to advisors.
LUBndSet lubCache
The cached least upper bound.
unsigned int cardMin(void) const
Return minimum cardinality.
ModEvent include(Space &home, View &x, int s)
Prune view x to only include values from s.
ModEvent includeI(Space &home, I &i)
Include range sequence described by i in greatest lower bound.
bool lubAny(const Delta &d) const
Test whether arbitrary values got pruned from lub.
ModEvent include(Space &home, int i, int j)
Update greatest lower bound to include all elements between and including i and j.
unsigned int cardMin(void) const
Return minimum cardinality.
ModEvent intersectI(Space &home, I &iter)
Intersect least upper bound with range sequence described by i.
int glbMax(void) const
Return maximum of the greatest lower bound.
Growing sets of integers.
ModEvent intersect(Space &home, int i, int j)
Update least upper bound to contain at most all elements between and including i and j...
int glbMin(void) const
Return minimum of the greatest lower bound.
bool notContains(int i) const
Test whether i is not in the least upper bound.
static void schedule(Space &home, Propagator &p, ModEvent me)
Schedule propagator p with modification event me.
ModEvent intersect(Space &home, int i, int j)
Update least upper bound to contain at most all elements between and including i and j...
Post propagator for SetVar x
void subscribe(Space &home, Propagator &p, PropCond pc, bool schedule=true)
Subscribe propagator p with propagation condition pc to view.
unsigned int cardMin(void) const
Return minimum cardinality.
static ModEvent me(const ModEventDelta &med)
Return modification event for view type in med.
bool notContains(int i) const
Test whether i is not in the least upper bound.
unsigned int cardMax(void) const
Return maximum cardinality.
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 unknownSize(void) const
Return the number of unknown elements.
bool notContains(int i) const
Test whether i is not in 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...
ModEvent excludeI(Space &home, I &i)
Remove range sequence described by i from least upper bound.
bool notContains(int i) const
Test whether i is not in the least upper bound.
Gecode toplevel namespace
ModEvent include(Space &home, int i, int j)
Update greatest lower bound to include all elements between and including i and j.
int lubMax(void) const
Return maximum of the least upper bound.
void reschedule(Space &home, Propagator &p, PropCond pc)
Re-schedule propagator p with propagation condition pc.
LubRanges< View > lr
Upper bound iterator.
bool contains(int i) const
Test whether i is in the greatest lower bound.
Range iterator for computing set difference.
LubDiffRanges(const CachedView< View > &x)
Constructor.
bool lubAny(const Delta &d) const
Test whether arbitrary values got pruned from lub.
static void schedule(Space &home, Propagator &p, ModEvent me)
Schedule propagator p with modification event me.
bool contains(int i) const
Test whether i is in the greatest lower bound.
static PropCond pc_negateset(PropCond pc)
Negate the propagation condition pc.
bool lubAny(const Delta &d) const
Test whether arbitrary values got pruned from lub.
bool lubAny(const Delta &d) const
Test whether arbitrary values got pruned from lub.
GlbRanges< View > gr
Lower bound iterator.
int lubMinN(unsigned int n) const
Return n-th smallest element of the least upper bound.
int glbMax(void) const
Return maximum of the greatest lower bound.
Constant view for the empty set.
int ModEventDelta
Modification event deltas.
bool before(const ConstSetView &x, const ConstSetView &y)
void initCache(Space &home, const IntSet &s)
Initialize cache to set s.
bool lubAny(const Delta &d) const
Test whether arbitrary values got pruned from lub.
int lubMin(void) const
Return minimum of the least upper bound.
Range iterator for difference of least upper bound and cache
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.
int lubMin(void) const
Return minimum of the least upper bound.
ModEvent intersectI(Space &home, I &iter)
Intersect least upper bound with range sequence described by i.
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 cardMax(void) const
Return maximum cardinality.
static ModEvent me_settoint(ModEvent me)
Convert set variable ModEvent me to a ModEvent for integer variables.
static ModEvent me(const ModEventDelta &med)
Return modification event for view type in med.
unsigned int glbSize(void) const
Return the number of elements in the greatest lower bound.
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.
BndSetRanges cr
Cached upper bound.
bool lubModified(void) const
Check whether least upper bound cache differs from current domain.
ModEvent include(Space &home, int i, int j)
Update greatest lower bound to include all elements between and including i and j.
unsigned int lubSize(void) const
Return the number of elements in the least upper bound.