38namespace Gecode {
namespace Float {
namespace Rel {
55 if ((x0 != x1) && (x0.max() > x1.min()))
56 (void)
new (home)
Lq<View>(home,x0,x1);
68 return new (home)
Lq<View>(home,*
this);
76 return (x0.assigned() || x1.assigned() || (x0.max() <= x1.min())) ? home.
ES_SUBSUMED(*
this) :
ES_FIX;
94 if (x0.assigned() && x1.assigned()) {
95 if (x0.max() >= x1.min())
99 if (x0.max() >= x1.min())
100 (void)
new (home)
Le<View>(home,x0,x1);
112 return new (home)
Le<View>(home,*
this);
120 if (x0.assigned() && x1.assigned()) {
134 template<
class View,
class CtrlView, ReifyMode rm>
139 template<
class View,
class CtrlView, ReifyMode rm>
163 if (!x0.assigned() || !x1.assigned())
172 }
else if (rm !=
RM_IMP) {
178 template<
class View,
class CtrlView, ReifyMode rm>
183 template<
class View,
class CtrlView, ReifyMode rm>
189 template<
class View,
class CtrlView, ReifyMode rm>
195 }
else if (
b.zero()) {
209 if (!x0.assigned() || !x1.assigned())
227 template<
class View,
class CtrlView, ReifyMode rm>
232 template<
class View,
class CtrlView, ReifyMode rm>
265 template<
class View,
class CtrlView, ReifyMode rm>
270 template<
class View,
class CtrlView, ReifyMode rm>
276 template<
class View,
class CtrlView, ReifyMode rm>
282 }
else if (
b.zero()) {
314 template<
class View,
class CtrlView, ReifyMode rm>
319 template<
class View,
class CtrlView, ReifyMode rm>
330 }
else if (
b.zero()) {
353 template<
class View,
class CtrlView, ReifyMode rm>
358 template<
class View,
class CtrlView, ReifyMode rm>
364 template<
class View,
class CtrlView, ReifyMode rm>
375 }
else if (
b.zero()) {
struct Gecode::@603::NNF::@65::@66 b
For binary nodes (and, or, eqv)
int p
Number of positive literals for node type.
Base-class for both propagators and branchers.
friend FloatVal max(const FloatVal &x, const FloatVal &y)
friend FloatVal min(const FloatVal &x, const FloatVal &y)
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
static ExecStatus post(Home home, View x0, View x1)
Post propagator .
Le(Space &home, Le &p)
Constructor for cloning p.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
Less or equal propagator.
Lq(Space &home, Lq &p)
Constructor for cloning p.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
static ExecStatus post(Home home, View x0, View x1)
Post propagator .
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
Reified less with float propagator.
static ExecStatus post(Home home, View x, FloatVal c, CtrlView b)
Post propagator for .
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
ReLeFloat(Space &home, ReLeFloat &p)
Constructor for cloning p.
Reified less or equal with float propagator.
static ExecStatus post(Home home, View x, FloatVal c, CtrlView b)
Post propagator for .
ReLqFloat(Space &home, ReLqFloat &p)
Constructor for cloning p.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
Reified less or equal propagator.
ReLq(Space &home, ReLq &p)
Constructor for cloning p.
static ExecStatus post(Home home, View x0, View x1, CtrlView b)
Post propagator for .
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
Home class for posting propagators
Reified binary propagator.
Reified unary propagator.
bool assigned(void) const
Test whether view is assigned.
ExecStatus ES_SUBSUMED(Propagator &p)
int ModEventDelta
Modification event deltas.
#define GECODE_ME_CHECK(me)
Check whether modification event me is failed, and forward failure.
#define GECODE_REWRITE(prop, post)
Rewrite propagator by executing post function.
@ RM_IMP
Implication for reification.
@ RM_PMI
Inverse implication for reification.
@ RT_TRUE
Relation does hold.
@ RT_FALSE
Relation does not hold.
@ RT_MAYBE
Relation may hold or not.
RelTest rtest_le(View x, View y)
Test whether view x is less than view y.
RelTest rtest_lq(View x, View y)
Test whether view x is less or equal than view y.
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_FAILED
Execution has resulted in failure.
Post propagator for SetVar x
#define GECODE_NEVER
Assert that this command is never executed.