44namespace Gecode {
namespace Set {
namespace Channel {
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())
int p
Number of positive literals for node type.
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.
Base-class for propagators.
size_t size
The size of the propagator (used during subsumption)
Propagator for the sorted channel constraint
virtual void reschedule(Space &home)
Schedule function.
View x0
SetView for the match.
ViewArray< Gecode::Int::IntView > xs
IntViews that together form the set x0.
Range iterator for the greatest lower bound.
Range iterator for the least upper bound.
Propagator for set equality
void update(Space &home, ViewArray< View > &a)
Update array to be a clone of array a.
void subscribe(Space &home, Propagator &p, PropCond pc, bool schedule=true)
Subscribe propagator p with propagation condition pc to variable.
int size(void) const
Return size of array (number of elements)
ExecStatus ES_SUBSUMED(Propagator &p)
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 int min
Smallest allowed integer value.
const int max
Largest allowed integer value.
const Gecode::PropCond PC_INT_BND
Propagate when minimum or maximum of a view changes.
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.
TFE post(PropagatorGroup g)
Only post functions (but not propagators) from g are considered.
@ ES_OK
Execution is okay.
@ ES_FIX
Propagation has computed fixpoint.
void max(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .