Go to the documentation of this file.
36 namespace Gecode {
namespace Int {
namespace Channel {
61 while ((i<x.
size()) && !x[i].zero())
77 }
while ((i<x.
size()) && !x[i].zero());
126 assert((
y.
min()-o >= 0) && (
y.
max()-o <
n));
132 for (
int i=0;
i<j;
i++)
134 for (
int i=j+1;
i<
n;
i++)
140 if (status == S_ONE) {
142 for (
int i=0;
true;
i++)
144 for (
int j=0; j<
i; j++)
146 for (
int j=
i+1; j<
n; j++)
174 while ((
i <
n) &&
x[
i].zero())
i++;
183 while ((
i >= 0) &&
x[
i].zero())
i--;
203 assert((
n >= 2) &&
x[0].none() &&
x[
n-1].none());
204 assert((
y.
min()-o == 0) && (
y.
max()-o ==
n-1));
221 }
while (
v() && (
i <
n));
Post propagator for SetVar x
bool assigned(void) const
Test whether view is assigned.
void max(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
ExecStatus ES_SUBSUMED(Propagator &p)
int min(void) const
Return minimum of domain.
bool operator()(void) const
Test whether further values available.
ViewArray< BoolView > x
Array of views.
Class to iterate over advisors of a council.
bool one(void) const
Test whether view is assigned to be one.
ModEvent minus_v(Space &home, I &i, bool depends=true)
Remove from domain the values described by i.
static PropCost linear(PropCost::Mod m, unsigned int n)
Linear complexity for modifier pcm and size measure n.
Base-class for both propagators and branchers.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
virtual ExecStatus advise(Space &home, Advisor &a, const Delta &d)
Give advice to propagator.
const Gecode::ModEvent ME_BOOL_VAL
Domain operation has resulted in a value (assigned variable)
const Gecode::ModEvent ME_INT_VAL
Domain operation has resulted in a value (assigned variable)
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
Gecode toplevel namespace
int max(void) const
Return maximum of domain.
Link propagator for multiple Boolean views.
int val(void) const
Return assigned value (only if assigned)
Generic domain change information to be supplied to advisors.
static ModEvent me(const ModEventDelta &med)
Return modification event for view type in med.
virtual void reschedule(Space &home)
Schedule function.
const Gecode::ModEvent ME_INT_BND
Domain operation has changed the minimum or maximum of the domain.
static PropCost unary(PropCost::Mod m)
Single variable for modifier pcm.
void cancel(Space &home, Propagator &p, PropCond pc)
Cancel subscription of propagator p with propagation condition pc to all views.
ModEventDelta med
A set of modification events (used during propagation)
static void schedule(Space &home, Propagator &p, ModEvent me)
Schedule propagator p with modification event me.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (low unary if y is assigned, low linear otherwise)
bool one(const Gecode::FloatValArgs &a)
Check whether has only one coefficients.
#define GECODE_NEVER
Assert that this command is never executed.
void operator++(void)
Move to the next value.
void drop_fst(int i)
Drop views from positions 0 to i-1 from array.
void reschedule(Space &home, Propagator &p, PropCond pc)
Re-schedule propagator p with propagation condition pc.
void drop_lst(int i)
Drop views from positions i+1 to size()-1 from array.
Propagation has computed fixpoint.
int size(void) const
Return size of array (number of elements)
BoolIter(const ViewArray< BoolView > &x0, int o0)
Initialize iterator.
#define GECODE_ME_CHECK(me)
Check whether modification event me is failed, and forward failure.
int val(void) const
Return value.
void min(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
ModEvent lq(Space &home, int n)
Restrict domain values to be less or equal than n.
ModEvent gq(Space &home, int n)
Restrict domain values to be greater or equal than n.
A & advisor(void) const
Return advisor.
int n
Number of negative literals for node type.
Execution has resulted in failure.
const Gecode::PropCond PC_INT_DOM
Propagate when domain changes.
Iterates the values to be removed as defined by an array of Boolean views.
int ModEventDelta
Modification event deltas.
Propagation has not computed fixpoint.
Gecode::IntArgs i({1, 2, 3, 4})
const Gecode::ModEvent ME_INT_DOM
Domain operation has changed the domain.
ModEvent eq(Space &home, int n)
Restrict domain values to be equal to n.