40 namespace Gecode {
namespace Int {
namespace Channel {
65 while ((i<x.
size()) && !x[i].zero())
81 }
while ((i<x.
size()) && !x[i].zero());
88 (home,share,
p), status(S_NONE), o(
p.o) {
89 assert(
p.status == S_NONE);
90 c.update(home,share,
p.c);
95 return new (home)
LinkMulti(home,share,*
this);
105 return sizeof(*this);
131 assert((
y.
min()-o >= 0) && (
y.
max()-o <
n));
137 for (
int i=0;
i<j;
i++)
139 for (
int i=j+1;
i<
n;
i++)
145 if (status == S_ONE) {
147 for (
int i=0;
true;
i++)
149 for (
int j=0; j<
i; j++)
151 for (
int j=
i+1; j<
n; j++)
179 while ((
i <
n) &&
x[
i].zero())
i++;
188 while ((
i >= 0) &&
x[
i].zero())
i--;
208 assert((
n >= 2) &&
x[0].none() &&
x[
n-1].none());
209 assert((
y.
min()-o == 0) && (
y.
max()-o ==
n-1));
226 }
while (
v() && (
i <
n));
int val(void) const
Return assigned value (only if assigned)
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.
ModEvent eq(Space &home, int n)
Restrict domain values to be equal to n.
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 .
Mixed (n+1)-ary propagator.
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.
ViewArray< BoolView > x
Array of views.
Propagation has computed fixpoint.
bool operator()(void) const
Test whether further values available.
static PropCost unary(PropCost::Mod m)
Single variable for modifier pcm.
Base-class for both propagators and branchers.
ModEvent minus_v(Space &home, I &i, bool depends=true)
Remove from domain the values described by i.
Gecode::FloatVal c(-8, 8)
int p
Number of positive literals for node type.
Gecode::IntArgs i(4, 1, 2, 3, 4)
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::PropCond PC_BOOL_NONE
Propagation condition to be ignored (convenience)
ModEvent lq(Space &home, int n)
Restrict domain values to be less or equal than n.
const Gecode::ModEvent ME_INT_VAL
Domain operation has resulted in a value (assigned variable)
ModEventDelta med
A set of modification events (used during propagation)
const Gecode::PropCond PC_INT_DOM
Propagate when domain changes.
int min(void) const
Return minimum of domain.
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 .
Integer view for integer variables.
bool assigned(void) const
Test whether view is assigned.
int val(void) const
Return value.
Node * x
Pointer to corresponding Boolean expression node.
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.
ModEvent gq(Space &home, int n)
Restrict domain values to be greater or equal than n.
BoolIter(const ViewArray< BoolView > &x0, int o0)
Initialize iterator.
Propagation has not computed fixpoint.
Gecode toplevel namespace
int max(void) const
Return maximum of domain.
Link propagator for multiple Boolean views.
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)
Boolean view for Boolean variables.