48 namespace Gecode {
namespace Set {
namespace Channel {
63 x0.update(home,share,p.
x0);
71 unsigned int xs_size =
static_cast<unsigned int>(xs.
size());
111 int xs_size = xs.size();
120 for (
int i=xs_size-1;
i--; ) {
125 for (
int i=xs_size-2;
i--; ) {
130 for (
int i=xs_size;
i--; ) {
137 for (
int i=xs_size;
i--; ) {
146 x0.exclude(home,xs[xs_size-1].max()+1,
149 for (
int i=xs_size-1;
i--; ) {
150 int start = xs[
i].max() + 1;
151 int end = xs[
i+1].min() - 1;
158 if (x0.glbSize()>0) {
166 for (; ubv() && lbv() && ubv.
val()==lbv.
val();
171 if (i<xs_size-1 && x0.lubMax()==x0.glbMax()) {
177 int to = x0.glbMax();
185 for (
int j=to; j>=from;j--,i--) {
193 for (
int i=xs_size;
i--; )
void update(Space &, bool share, ViewArray< View > &a)
Update array to be a clone of array a.
void post(Home home, Term *t, int n, FloatRelType frt, FloatVal c)
Post propagator for linear constraint over floats.
static PropCost linear(PropCost::Mod m, unsigned int n)
Linear complexity for modifier pcm and size measure n.
const int min
Smallest allowed integer in integer set.
ExecStatus ES_SUBSUMED(Propagator &p)
void max(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
Base-class for propagators.
Propagation has computed fixpoint.
const int max
Largest allowed integer in integer set.
#define GECODE_ME_CHECK_MODIFIED(modified, me)
Check whether me is failed or modified, and forward failure.
Base-class for both propagators and branchers.
virtual Actor * copy(Space &home, bool)
Copy propagator during cloning.
View x0
SetView for the match.
int min(void) const
Return smallest value of range.
#define GECODE_ES_CHECK(es)
Check whether execution status es is failed or subsumed, and forward failure or subsumption.
int p
Number of positive literals for node type.
Gecode::IntArgs i(4, 1, 2, 3, 4)
Range iterator for computing intersection (binary)
void subscribe(Space &home, Propagator &p, PropCond pc, bool process=true)
Subscribe propagator p with propagation condition pc to variable.
const Gecode::PropCond PC_INT_BND
Propagate when minimum or maximum of a view changes.
Value iterator from range iterator.
#define GECODE_ME_CHECK(me)
Check whether modification event me is failed, and forward failure.
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...
const Gecode::PropCond PC_SET_ANY
Propagate when any bound or the cardinality of a view changes.
Propagator for the sorted channel constraint
SetExpr inter(const SetVarArgs &x)
Intersection of set variables.
void min(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
virtual size_t dispose(Space &home)
Delete actor and return its size.
bool assigned(View x, int v)
Whether x is assigned to value v.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual size_t dispose(Space &home)
Delete Propagator.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as PC_LINEAR_LO)
Propagator for set equality
int val(void) const
Return current value.
int size(void) const
Return size of array (number of elements)
Gecode toplevel namespace
ViewArray< Gecode::Int::IntView > xs
IntViews that together form the set x0.
int ModEventDelta
Modification event deltas.
ChannelSorted(Space &home, bool share, ChannelSorted &p)
Constructor for cloning p.
Home class for posting propagators