67 unsigned int xs_size =
static_cast<unsigned int>(
xs.size());
101 return sizeof(*this);
114 int xs_size =
xs.size();
123 for (
int i=xs_size-1; i--; ) {
128 for (
int i=xs_size-2; i--; ) {
133 for (
int i=xs_size; i--; ) {
134 if (
xs[i].assigned()) {
140 for (
int i=xs_size; i--; ) {
149 x0.exclude(home,
xs[xs_size-1].max()+1,
152 for (
int i=xs_size-1; i--; ) {
153 int start =
xs[i].max() + 1;
154 int end =
xs[i+1].min() - 1;
161 if (
x0.glbSize()>0) {
169 for (; ubv() && lbv() && ubv.
val()==lbv.
val();
174 if (i<xs_size-1 &&
x0.lubMax()==
x0.glbMax()) {
180 int to =
x0.glbMax();
188 for (
int j=to; j>=from;j--,k--) {
196 for (
int i=xs_size; i--; )
197 if (!
xs[i].assigned())
Base-class for both propagators and branchers.
virtual size_t dispose(Space &home)
Delete actor and return its size.
Home class for posting propagators
Range iterator for computing intersection (binary)
Value iterator from range iterator.
int val(void) const
Return current value.
static PropCost linear(PropCost::Mod m, unsigned int n)
Linear complexity for modifier pcm and size measure n.
Propagator(Home home)
Constructor for posting.
virtual void reschedule(Space &home)
Schedule function.
ChannelSorted(Space &home, ChannelSorted &p)
Constructor for cloning p.
static ExecStatus post(Home home, View s, ViewArray< Gecode::Int::IntView > &x)
Post propagator that propagates that s contains the , which are sorted in non-descending order.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
virtual size_t dispose(Space &home)
Delete Propagator.
View x0
SetView for the match.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
ViewArray< Gecode::Int::IntView > xs
IntViews that together form the set x0.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as PC_LINEAR_LO)
Range iterator for the greatest lower bound.
Range iterator for the least upper bound.
Propagator for set equality
ExecStatus ES_SUBSUMED(Propagator &p)
Propagator p is subsumed
int ModEventDelta
Modification event deltas.
#define GECODE_ME_CHECK(me)
Check whether modification event me is failed, and forward failure.
#define GECODE_ES_CHECK(es)
Check whether execution status es is failed or subsumed, and forward failure or subsumption.
#define GECODE_ME_CHECK_MODIFIED(modified, me)
Check whether me is failed or modified, and forward failure.
const Gecode::PropCond PC_INT_BND
Propagate when minimum or maximum of a view changes.
Channeling propagators for set variables.
const int min
Smallest allowed integer in integer set.
const int max
Largest allowed integer in integer set.
const Gecode::PropCond PC_SET_ANY
Propagate when any bound or the cardinality of a view changes.
Gecode toplevel namespace
void min(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
SetExpr inter(const SetVarArgs &)
Intersection of set variables.
@ ES_OK
Execution is okay.
@ ES_FIX
Propagation has computed fixpoint.
void max(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .