42 return x.min() >= 0.0;
48 return x.max() <= 0.0;
54 return (x.min() <= 0.0) && (x.max() >= 0.0);
136 template<
class VA,
class VB,
class VC>
142 template<
class VA,
class VB,
class VC>
148 template<
class VA,
class VB,
class VC>
154 template<
class VA,
class VB,
class VC>
162 if (
x0.assigned() &&
x1.assigned() &&
x2.assigned())
167 template<
class VA,
class VB,
class VC>
203 if ((d.
min() == 0.0) && (d.
max() > 0.0)) {
206 return x.gq(home,q.
min());
208 return x.lq(home,q.
max());
209 }
else if ((d.
max() == 0.0) && (d.
min() < 0.0)) {
212 return x.lq(home,q.
max());
214 return x.gq(home,q.
min());
232 if (
x0.assigned() &&
x1.assigned() &&
x2.assigned())
256 if (
x0.assigned() &&
x1.assigned() &&
x2.assigned())
Base-class for both propagators and branchers.
BinaryPropagator(Space &home, BinaryPropagator &p)
friend FloatVal max(const FloatVal &x, const FloatVal &y)
friend FloatVal min(const FloatVal &x, const FloatVal &y)
static ExecStatus post(Home home, VA x0, VB x1, VC x2)
Post propagator .
virtual Actor * copy(Space &home)
Copy propagator during cloning.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
MultPlus(Home home, VA x0, VB x1, VC x2)
Constructor for posting.
static ExecStatus post(Home home, View x0, View x1)
Post propagator .
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
MultZeroOne(Space &home, MultZeroOne< View > &p)
Constructor for cloning p.
static ExecStatus post(Home home, View x0, View x1, View x2)
Post propagator .
virtual Actor * copy(Space &home)
Copy propagator during cloning.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
Mult(Space &home, Mult< View > &p)
Constructor for cloning p.
static ExecStatus post(Home home, View x0, View x1)
Post propagator for .
Floating point rounding policy.
Home class for posting propagators
int min(int i) const
Return minimum of range at position i.
int max(int i) const
Return maximum of range at position i.
MixTernaryPropagator(Space &home, MixTernaryPropagator &p)
TernaryPropagator(Space &home, TernaryPropagator &p)
ExecStatus ES_SUBSUMED(Propagator &p)
Propagator p is subsumed
int ModEventDelta
Modification event deltas.
#define GECODE_ME_CHECK(me)
Check whether modification event me is failed, and forward failure.
bool any(const View &x)
Test whether x is neither positive nor negative.
bool pos(const View &x)
Test whether x is positive.
bool neg(const View &x)
Test whether x is negative.
ModEvent div_zero_endpoint(Home home, View x, const FloatVal &n, const View &d)
Contract a quotient when the denominator has zero as one endpoint.
@ RT_TRUE
Relation does hold.
@ RT_FALSE
Relation does not hold.
@ RT_MAYBE
Relation may hold or not.
RelTest rtest_eq(View x, View y)
Test whether views x and y are equal.
const Gecode::ModEvent ME_FLOAT_NONE
Domain operation has not changed domain.
const Gecode::PropCond PC_FLOAT_BND
Propagate when minimum or maximum of a view changes.
Gecode toplevel namespace
@ ES_OK
Execution is okay.
@ ES_FIX
Propagation has computed fixpoint.
@ ES_NOFIX
Propagation has not computed fixpoint.
int ModEvent
Type for modification events.
#define GECODE_NEVER
Assert that this command is never executed.