38 namespace Gecode {
namespace Int {
namespace Arithmetic {
40 template<
class View,
template<
class View0,
class View1>
class Eq>
52 }
else if (x0.max() <= 0) {
55 }
else if (x1.val() == 0) {
59 int mp[2] = {-x1.val(),x1.val()};
77 if (-x1.min() < x0.min()) {
79 }
else if (x0.max() < x1.min()) {
96 }
else if (x0.max() <= 0) {
99 assert(!x0.assigned());
102 int mp[2] = {-x1.val(),x1.val()};
105 }
else if (x0 != x1) {
136 return prop_abs_bnd<View,Rel::EqBnd>(home, *
this,
x0,
x1);
151 }
else if (x0.max() <= 0) {
154 assert(!x0.assigned());
157 int mp[2] = {-x1.val(),x1.val()};
160 }
else if (x0 != x1) {
202 using namespace Iter::Ranges;
203 Positive<ViewRanges<View> >
p(
i);
204 Negative<ViewRanges<View> >
n(j);
217 using namespace Iter::Ranges;
#define GECODE_REWRITE(prop, post)
Rewrite propagator by executing post function.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
Binary domain consistent equality propagator.
ExecStatus ES_SUBSUMED(Propagator &p)
const FloatNum max
Largest allowed float value.
Propagator for ternary union
Value iterator for array of integers
ExecStatus ES_NOFIX_PARTIAL(Propagator &p, const ModEventDelta &med)
Propagator p has not computed partial fixpoint
static ExecStatus post(Home home, View0 x0, View1 x1)
Post domain consistent propagator .
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function.
ExecStatus prop_abs_bnd(Space &home, Propagator &p, View x0, View x1)
Base-class for propagators.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
AbsBnd(Space &home, AbsBnd &p)
Constructor for cloning p.
Propagation has computed fixpoint.
AbsDom(Space &home, AbsDom &p)
Constructor for cloning p.
static PropCost unary(PropCost::Mod m)
Single variable for modifier pcm.
Base-class for both propagators and branchers.
Range iterator for integer views.
Bounds consistent absolute value propagator.
static ExecStatus post(Home home, View0 x0, View1 x1)
Post bounds consistent propagator .
#define GECODE_ES_CHECK(es)
Check whether execution status es is failed or subsumed, and forward failure or subsumption.
static ExecStatus post(Home home, View x0, View x1)
Post domain consistent propagator .
int p
Number of positive literals for node type.
int n
Number of negative literals for node type.
Gecode::IntArgs i({1, 2, 3, 4})
Domain consistent absolute value propagator.
const Gecode::PropCond PC_INT_BND
Propagate when minimum or maximum of a view changes.
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)
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
const Gecode::PropCond PC_INT_DOM
Propagate when domain changes.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
#define GECODE_ME_CHECK(me)
Check whether modification event me is failed, and forward failure.
union Gecode::@593::NNF::@62 u
Union depending on nodetype t.
Post propagator for SetVar SetOpType SetVar SetRelType r
const Gecode::ModEvent ME_INT_DOM
Domain operation has changed the domain.
Propagator for set equality
Propagation has not computed fixpoint.
Gecode toplevel namespace
int ModEventDelta
Modification event deltas.
Home class for posting propagators
static PropCost binary(PropCost::Mod m)
Two variables for modifier pcm.
static ExecStatus post(Home home, View x0, View x1)
Post bounds consistent propagator .