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.
FloatNum mul_down(FloatNum x, FloatNum y)
Return lower bound of x times y (domain: ).
Home class for posting propagators
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.