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>
245 if (x.assigned() && (x.min() <= c.
max()))
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>
330 if (x.assigned() && (x.max() >= c.
min()))
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()) {
static ExecStatus post(Home home, View x, FloatVal c, CtrlView b)
Post propagator for .
Le(Space &home, bool share, Le &p)
Constructor for cloning p.
RelTest rtest_lq(View x, View y)
Test whether view x is less or equal than view y.
#define GECODE_REWRITE(prop, post)
Rewrite propagator by executing post function.
Reified less or equal propagator.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
Inverse implication for reification.
ExecStatus ES_SUBSUMED(Propagator &p)
Reified unary propagator.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
static ExecStatus post(Home home, View x, FloatVal c, CtrlView b)
Post propagator for .
Reified binary propagator.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
Propagation has computed fixpoint.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
Base-class for both propagators and branchers.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
Gecode::FloatVal c(-8, 8)
ReLeFloat(Space &home, bool share, ReLeFloat &p)
Constructor for cloning p.
int p
Number of positive literals for node type.
bool same(const ConstView< ViewA > &, const ConstView< ViewB > &)
Test whether two views are the same.
Reified less or equal with float propagator.
Execution has resulted in failure.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
static ExecStatus post(Home home, View x0, View x1)
Post propagator .
ReLqFloat(Space &home, bool share, ReLqFloat &p)
Constructor for cloning p.
static ExecStatus post(Home home, View x0, View x1)
Post propagator .
#define GECODE_ME_CHECK(me)
Check whether modification event me is failed, and forward failure.
Less or equal propagator.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
Node * x
Pointer to corresponding Boolean expression node.
static ExecStatus post(Home home, View x0, View x1, CtrlView b)
Post propagator for .
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
const Gecode::PropCond PC_FLOAT_BND
Propagate when minimum or maximum of a view changes.
RelTest rtest_le(View x, View y)
Test whether view x is less than view y.
ReLq(Space &home, bool share, ReLq &p)
Constructor for cloning p.
struct Gecode::@518::NNF::@57::@58 b
For binary nodes (and, or, eqv)
Gecode toplevel namespace
Implication for reification.
Relation may hold or not.
friend FloatVal max(const FloatVal &x, const FloatVal &y)
int ModEventDelta
Modification event deltas.
friend FloatVal min(const FloatVal &x, const FloatVal &y)
Home class for posting propagators
Lq(Space &home, bool share, Lq &p)
Constructor for cloning p.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
#define GECODE_NEVER
Assert that this command is never executed.
Reified less with float propagator.