Go to the documentation of this file.
42 namespace Gecode {
namespace Float {
namespace Rel {
59 if (!
same(x0,x1) && (x0.max() > x1.min()))
60 (void)
new (home)
Lq<View>(home,x0,x1);
72 return new (home)
Lq<View>(home,share,*
this);
80 return (x0.assigned() || x1.assigned() || (x0.max() <= x1.min())) ? home.
ES_SUBSUMED(*
this) :
ES_FIX;
98 if (x0.assigned() && x1.assigned()) {
99 if (x0.max() >= x1.min())
101 }
else if (
same(x0,x1))
103 if (x0.max() >= x1.min())
104 (void)
new (home)
Le<View>(home,x0,x1);
116 return new (home)
Le<View>(home,share,*
this);
124 if (x0.assigned() && x1.assigned()) {
138 template<
class View,
class CtrlView, ReifyMode rm>
143 template<
class View,
class CtrlView, ReifyMode rm>
167 if (!x0.assigned() || !x1.assigned())
176 }
else if (rm !=
RM_IMP) {
182 template<
class View,
class CtrlView, ReifyMode rm>
187 template<
class View,
class CtrlView, ReifyMode rm>
193 template<
class View,
class CtrlView, ReifyMode rm>
199 }
else if (
b.zero()) {
213 if (!x0.assigned() || !x1.assigned())
231 template<
class View,
class CtrlView, ReifyMode rm>
236 template<
class View,
class CtrlView, ReifyMode rm>
269 template<
class View,
class CtrlView, ReifyMode rm>
274 template<
class View,
class CtrlView, ReifyMode rm>
280 template<
class View,
class CtrlView, ReifyMode rm>
286 }
else if (
b.zero()) {
318 template<
class View,
class CtrlView, ReifyMode rm>
323 template<
class View,
class CtrlView, ReifyMode rm>
334 }
else if (
b.zero()) {
357 template<
class View,
class CtrlView, ReifyMode rm>
362 template<
class View,
class CtrlView, ReifyMode rm>
368 template<
class View,
class CtrlView, ReifyMode rm>
379 }
else if (
b.zero()) {
Post propagator for SetVar x
friend FloatVal max(const FloatVal &x, const FloatVal &y)
@ RM_PMI
Inverse implication for reification.
static ExecStatus post(Home home, View x0, View x1)
Post propagator .
Reified less or equal with float propagator.
ExecStatus ES_SUBSUMED(Propagator &p)
friend FloatVal min(const FloatVal &x, const FloatVal &y)
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
@ RT_MAYBE
Relation may hold or not.
const Gecode::PropCond PC_FLOAT_BND
Propagate when minimum or maximum of a view changes.
@ RT_FALSE
Relation does not hold.
@ RM_IMP
Implication for reification.
bool same(const Item &i, const Item &j)
Whether two items are the same.
Base-class for both propagators and branchers.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
bool assigned(void) const
Test whether view is assigned.
Reified less with float propagator.
Reified unary propagator.
static ExecStatus post(Home home, View x, FloatVal c, CtrlView b)
Post propagator for .
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
ReLq(Space &home, bool share, ReLq &p)
Constructor for cloning p.
Lq(Space &home, bool share, Lq &p)
Constructor for cloning p.
Gecode toplevel namespace
ReLeFloat(Space &home, bool share, ReLeFloat &p)
Constructor for cloning p.
Home class for posting propagators
struct Gecode::@579::NNF::@61::@62 b
For binary nodes (and, or, eqv)
Reified binary propagator.
@ RT_TRUE
Relation does hold.
Le(Space &home, bool share, Le &p)
Constructor for cloning p.
#define GECODE_NEVER
Assert that this command is never executed.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
ReLqFloat(Space &home, bool share, ReLqFloat &p)
Constructor for cloning p.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
@ ES_FIX
Propagation has computed fixpoint.
#define GECODE_ME_CHECK(me)
Check whether modification event me is failed, and forward failure.
static ExecStatus post(Home home, View x, FloatVal c, CtrlView b)
Post propagator for .
Less or equal propagator.
static ExecStatus post(Home home, View x0, View x1, CtrlView b)
Post propagator for .
Gecode::FloatVal c(-8, 8)
@ ES_FAILED
Execution has resulted in failure.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
int ModEventDelta
Modification event deltas.
#define GECODE_REWRITE(prop, post)
Rewrite propagator by executing post function.
Reified less or equal propagator.
@ ES_OK
Execution is okay.
RelTest rtest_lq(View x, View y)
Test whether view x is less or equal than view y.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
int p
Number of positive literals for node type.
static ExecStatus post(Home home, View x0, View x1)
Post propagator .
RelTest rtest_le(View x, View y)
Test whether view x is less than view y.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.