40namespace Gecode {
namespace Set {
88 return lubSize() - glbSize();
180 return me_negateset((
x.exclude(home, c)));
186 return me_negateset((
x.include(home, c)));
194 return me_negateset((
x.includeI(home, csi)));
202 return me_negateset((
x.includeI(home, csi)));
208 return me_negateset(
x.exclude(home,j,k));
214 return me_negateset(
x.include(home,j,k));
220 return me_negateset(
x.includeI(home,iter));
226 return me_negateset(
x.excludeI(home,iter));
233 return me_negateset(
x.includeI(home,c));
240 x.subscribe(home,
p, pc_negateset(pc),schedule);
246 x.cancel(home,
p, pc_negateset(pc));
264 return View::schedule(home,
p,me_negateset(me));
269 return me_negateset(View::me(med));
275 return me_negateset(View::med(me));
286 return me_negateset(View::modevent(d));
361 unsigned int width(
void)
const;
368 : lb(s.base()), lbc(lb) {}
468 unsigned int width(
void)
const;
475 : ub(s.base()), ubc(ub) {}
540 template<
class Char,
class Traits,
class View>
541 std::basic_ostream<Char,Traits>&
544 std::basic_ostringstream<Char,Traits> s;
545 s.copyfmt(os); s.width(0);
546 s <<
"(" <<
x.base() <<
")^C";
547 return os << s.str();
554 return x.base() ==
y.base();
560 return x.base() !=
y.base();
int p
Number of positive literals for node type.
int n
Number of negative literals for node type.
struct Gecode::@603::NNF::@65::@67 a
For atomic nodes.
Generic domain change information to be supplied to advisors.
Base-class for derived views.
View base(void) const
Return view from which this view is derived.
int min(void) const
Return smallest value of range.
int max(void) const
Return largest value of range.
Range iterator for singleton range.
Base-class for propagators.
unsigned int cardMax(void) const
Return cardinality maximum.
bool notContains(int i) const
Test whether i is not in the least upper bound.
int lubMin(void) const
Return minimum element of least upper bound.
unsigned int lubSize(void) const
Return number of elements in the least upper bound.
int lubMax(void) const
Return maximum element of least upper bound.
unsigned int glbSize(void) const
Return number of elements in the greatest lower bound.
int glbMin(void) const
Return minimum element of greatest lower bound.
int glbMax(void) const
Return maximum of greatest lower bound.
bool contains(int i) const
Test whether i is in greatest lower bound.
unsigned int cardMin(void) const
Return cardinality minimum.
static const int MAX_OF_EMPTY
Returned by empty sets when asked for their maximum element.
static const int MIN_OF_EMPTY
Returned by empty sets when asked for their minimum element.
bool glbAny(const Delta &d) const
Test whether arbitrary values got pruned from glb.
static ModEvent me_negateset(ModEvent me)
Negate the modification event me.
ModEvent include(Space &home, int i, int j)
Update greatest lower bound to include all elements between and including i and j.
static ModEvent me(const ModEventDelta &med)
Return modification event for view type in med.
bool contains(int i) const
Test whether i is in 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.
int glbMin(void) const
Return minimum of the greatest lower bound.
int glbMax(void) const
Return maximum of the greatest lower bound.
static void schedule(Space &home, Propagator &p, ModEvent me)
Schedule propagator p with modification event me.
int lubMax(void) const
Return maximum of the least upper bound.
bool notContains(int i) const
Test whether i is not in the least upper bound.
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.
void subscribe(Space &home, Propagator &p, PropCond pc, bool schedule=true)
Subscribe 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 PropCond pc_negateset(PropCond pc)
Negate the propagation condition pc.
ModEvent intersectI(Space &home, I &iter)
Intersect least upper bound with range sequence described by i.
ComplementView(void)
Default constructor.
unsigned int glbSize(void) const
Return the number of elements in the greatest lower bound.
bool lubAny(const Delta &d) const
Test whether arbitrary values got pruned from lub.
unsigned int cardMin(void) const
Return minimum cardinality.
void cancel(Space &home, Propagator &p, PropCond pc)
Cancel subscription of propagator p with propagation condition pc to view.
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.
static ModEventDelta med(ModEvent)
Translate modification event me to modification event delta for view.
unsigned int unknownSize(void) const
Return the number of unknown elements.
static ModEvent modevent(const Delta &d)
Return modification event.
GlbRanges(void)
Default constructor.
GlbRanges(void)
Default constructor.
Range iterator for the greatest lower bound.
bool operator()(void) const
Test whether iterator is still at a range or done.
void init(const T &x)
Initialize with greatest lower bound ranges for set variable x.
int min(void) const
Return smallest value of range.
int max(void) const
Return largest value of range.
unsigned int width(void) const
Return width of range (distance between minimum and maximum)
void operator++(void)
Move iterator to next range (if possible)
GlbRanges(void)
Default constructor.
LubRanges(void)
Default constructor.
LubRanges(void)
Default constructor.
Range iterator for the least upper bound.
unsigned int width(void) const
Return width of range (distance between minimum and maximum)
LubRanges(void)
Default constructor.
void init(const T &x)
Initialize with least upper bound ranges for set variable x.
int max(void) const
Return largest value of range.
bool operator()(void) const
Test whether iterator is still at a range or done.
void operator++(void)
Move iterator to next range (if possible)
int min(void) const
Return smallest value of range.
A complement iterator spezialized for the BndSet limits.
int ModEventDelta
Modification event deltas.
std::basic_ostream< Char, Traits > & operator<<(std::basic_ostream< Char, Traits > &os, const IdxViewArray< View > &x)
bool operator==(const CachedView< View > &x, const CachedView< View > &y)
bool operator!=(const CachedView< View > &x, const CachedView< View > &y)
const unsigned int card
Maximum cardinality of an integer set.
const Gecode::ModEvent ME_SET_CLUB
Domain operation has changed the least upper bound and the cardinality.
const Gecode::ModEvent ME_SET_NONE
Domain operation has not changed domain.
const Gecode::ModEvent ME_SET_GLB
Domain operation has changed the greatest lower bound.
const Gecode::ModEvent ME_SET_CGLB
Domain operation has changed the greatest lower bound and the cardinality.
const Gecode::PropCond PC_SET_CLUB
Propagate when the cardinality or the least upper bound of a view changes.
const Gecode::ModEvent ME_SET_LUB
Domain operation has changed the least upper bound.
const Gecode::PropCond PC_SET_CGLB
Propagate when the cardinality or the greatest lower bound of a view changes.
Gecode toplevel namespace
void min(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
Post propagator for SetVar SetOpType SetVar y
void max(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
int PropCond
Type for propagation conditions.
Post propagator for SetVar x
int ModEvent
Type for modification events.