40 namespace Gecode {
namespace Int {
namespace Channel {
65 while ((i<x.
size()) && !x[i].zero())
81 }
while ((i<x.
size()) && !x[i].zero());
87 return new (home)
LinkMulti(home,share,*
this);
130 assert((
y.min()-o >= 0) && (
y.max()-o <
n));
136 for (
int i=0; i<j; i++)
138 for (
int i=j+1; i<
n; i++)
144 if (status == S_ONE) {
146 for (
int i=0;
true; i++)
148 for (
int j=0; j<i; j++)
150 for (
int j=i+1; j<
n; j++)
165 for (
int i=0; i<
min; i++)
170 for (
int i=max+1; i<
n; i++)
178 while ((i < n) && x[i].zero()) i++;
187 while ((i >= 0) && x[i].zero()) i--;
204 if ((
y.min() > o) || (
y.max() < o+n-1))
207 assert((n >= 2) && x[0].none() && x[n-1].none());
208 assert((
y.min()-o == 0) && (
y.max()-o == n-1));
225 }
while (
v() && (i < n));
virtual void reschedule(Space &home)
Schedule function.
static PropCost linear(PropCost::Mod m, unsigned int n)
Linear complexity for modifier pcm and size measure n.
ExecStatus ES_SUBSUMED(Propagator &p)
bool one(const Gecode::FloatValArgs &a)
Check whether has only one coefficients.
bool one(void) const
Test whether view is assigned to be one.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
void max(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
bool assigned(void) const
Test whether view is assigned.
virtual ExecStatus advise(Space &home, Advisor &a, const Delta &d)
Give advice to propagator.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
Class to iterate over advisors of a council.
Propagation has computed fixpoint.
bool operator()(void) const
Test whether further values available.
static PropCost unary(PropCost::Mod m)
Single variable for modifier pcm.
int val(void) const
Return current value.
Base-class for both propagators and branchers.
Gecode::FloatVal c(-8, 8)
void drop_lst(int i)
Drop views from positions i+1 to size()-1 from array.
int n
Number of negative literals for node type.
void operator++(void)
Move to the next value.
Execution has resulted in failure.
const Gecode::ModEvent ME_INT_VAL
Domain operation has resulted in a value (assigned variable)
const Gecode::PropCond PC_INT_DOM
Propagate when domain changes.
const Gecode::ModEvent ME_INT_BND
Domain operation has changed the minimum or maximum of the domain.
void drop_fst(int i)
Drop views from positions 0 to i-1 from array.
void cancel(Space &home, Propagator &p, PropCond pc)
Cancel subscription of propagator p with propagation condition pc to all views.
#define GECODE_ME_CHECK(me)
Check whether modification event me is failed, and forward failure.
void min(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
Post propagator for SetVar SetOpType SetVar y
int val(void) const
Return value.
Generic domain change information to be supplied to advisors.
const Gecode::ModEvent ME_INT_DOM
Domain operation has changed the domain.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
Iterates the values to be removed as defined by an array of Boolean views.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (low unary if y is assigned, low linear otherwise)
static ModEvent me(const ModEventDelta &med)
Return modification event for view type in med.
BoolIter(const ViewArray< BoolView > &x0, int o0)
Initialize iterator.
Propagation has not computed fixpoint.
Gecode toplevel namespace
Link propagator for multiple Boolean views.
static void schedule(Space &home, Propagator &p, ModEvent me)
Schedule propagator p with modification event me.
int ModEventDelta
Modification event deltas.
int size(void) const
Return size of array (number of elements)
#define GECODE_NEVER
Assert that this command is never executed.
A & advisor(void) const
Return advisor.
const Gecode::ModEvent ME_BOOL_VAL
Domain operation has resulted in a value (assigned variable)