38 namespace Gecode {
namespace Float {
namespace Rel {
55 if (!
same(x0,x1) && (x0.max() > x1.min()))
68 return new (home)
Lq<View>(home,*
this);
94 if (x0.assigned() && x1.assigned()) {
95 if (x0.max() >= x1.min())
97 }
else if (
same(x0,x1))
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>
241 if (x.assigned() && (x.min() <= c.
max()))
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>
326 if (x.assigned() && (x.max() >= c.
min()))
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()) {
static ExecStatus post(Home home, View x, FloatVal c, CtrlView b)
Post propagator for .
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)
ReLq(Space &home, ReLq &p)
Constructor for cloning p.
ReLeFloat(Space &home, ReLeFloat &p)
Constructor for cloning 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.
ReLqFloat(Space &home, ReLqFloat &p)
Constructor for cloning p.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
Propagation has computed fixpoint.
CtrlView b
Boolean control view.
Base-class for both propagators and branchers.
FloatVal c
Float constant to check.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
Gecode::FloatVal c(-8, 8)
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.
FloatVal c
Float constant to check.
Execution has resulted in failure.
static ExecStatus post(Home home, View x0, View x1)
Post propagator .
virtual Actor * copy(Space &home)
Copy propagator during cloning.
static ExecStatus post(Home home, View x0, View x1)
Post propagator .
virtual Actor * copy(Space &home)
Copy propagator during cloning.
#define GECODE_ME_CHECK(me)
Check whether modification event me is failed, and forward failure.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
Less or equal propagator.
struct Gecode::@585::NNF::@62::@63 b
For binary nodes (and, or, eqv)
static ExecStatus post(Home home, View x0, View x1, CtrlView b)
Post propagator for .
virtual Actor * copy(Space &home)
Copy propagator during cloning.
Lq(Space &home, Lq &p)
Constructor for cloning p.
Post propagator for SetVar x
virtual Actor * copy(Space &home)
Copy propagator during cloning.
Le(Space &home, Le &p)
Constructor for cloning p.
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.
Gecode toplevel namespace
Implication for reification.
CtrlView b
Boolean control view.
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
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.