Go to the documentation of this file.
36 namespace Gecode {
namespace Float {
namespace Rel {
43 template<
class View0,
class View1>
48 template<
class View0,
class View1>
53 }
else if (x1.assigned()) {
55 }
else if (x0 != x1) {
65 template<
class View0,
class View1>
70 template<
class View0,
class View1>
77 template<
class View0,
class View1>
83 template<
class View0,
class View1>
88 }
else if (x1.assigned()) {
94 }
while (x0.min() != x1.min());
98 }
while (x0.max() != x1.max());
102 assert(x0.assigned() && x1.assigned());
123 }
else if (
x.size() > 2) {
126 for (
int i=
x.size();
i-- > 1; ) {
130 for (
int i=
x.size();
i--; ) {
162 assert(
x.size() > 2);
165 for (
int i = 0; ;
i++)
169 for (
int j =
x.size(); j--; )
178 for (
int i =
x.size();
i--; ) {
180 if (mn <
x[
i].
min()) {
187 for (
int i =
x.size();
i--; ) {
189 if (mx >
x[
i].
max()) {
204 template<
class View,
class CtrlView, ReifyMode rm>
209 template<
class View,
class CtrlView, ReifyMode rm>
223 (void)
new (home)
ReEq(home,x0,x1,
b);
224 }
else if (rm !=
RM_IMP) {
231 template<
class View,
class CtrlView, ReifyMode rm>
236 template<
class View,
class CtrlView, ReifyMode rm>
242 template<
class View,
class CtrlView, ReifyMode rm>
277 template<
class View,
class CtrlView, ReifyMode rm>
283 template<
class View,
class CtrlView, ReifyMode rm>
304 template<
class View,
class CtrlView, ReifyMode rm>
309 template<
class View,
class CtrlView, ReifyMode rm>
315 template<
class View,
class CtrlView, ReifyMode rm>
struct Gecode::@602::NNF::@65::@66 b
For binary nodes (and, or, eqv)
Post propagator for SetVar x
Reified bounds consistent equality with float propagator.
Eq(Space &home, Eq< View0, View1 > &p)
Constructor for cloning p.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
Inverse implication for reification.
void max(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
ExecStatus ES_SUBSUMED(Propagator &p)
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
const Gecode::ModEvent ME_FLOAT_VAL
Domain operation has resulted in a value (assigned variable)
Relation may hold or not.
bool assigned(View x, int v)
Whether x is assigned to value v.
const Gecode::PropCond PC_FLOAT_BND
Propagate when minimum or maximum of a view changes.
Implication for reification.
static ExecStatus post(Home home, View0 x0, View1 x1)
Post bounds consistent propagator .
const FloatNum min
Smallest allowed float value.
static PropCost linear(PropCost::Mod m, unsigned int n)
Linear complexity for modifier pcm and size measure n.
NaryEq(Space &home, NaryEq< View > &p)
Constructor for cloning p.
Base-class for both propagators and branchers.
bool assigned(void) const
Test whether view is assigned.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
union Gecode::@602::NNF::@65 u
Union depending on nodetype t.
Gecode toplevel namespace
Base-class for propagators.
Binary bounds consistent equality propagator.
n-ary bounds consistent equality propagator
static ExecStatus post(Home home, ViewArray< View > &x)
Post bounds consistent propagator .
Home class for posting propagators
virtual Actor * copy(Space &home)
Copy propagator during cloning.
static ExecStatus post(Home home, View x, FloatVal c, CtrlView b)
Post bounds consistent propagator .
static PropCost unary(PropCost::Mod m)
Single variable for modifier pcm.
Reified binary propagator.
double FloatNum
Floating point number base type.
static ExecStatus post(Home home, View x0, View x1, CtrlView b)
Post bounds consistent propagator .
virtual Actor * copy(Space &home)
Copy propagator during cloning.
Binary bounds consistent disequality propagator.
RelTest rtest_eq(View x, View y)
Test whether views x and y are equal.
#define GECODE_NEVER
Assert that this command is never executed.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function.
ReEq(Space &home, ReEq &p)
Constructor for cloning p.
bool overlap(const FloatVal &x, const FloatVal &y)
Propagation has computed fixpoint.
ReEqFloat(Space &home, ReEqFloat &p)
Constructor for cloning p.
static ExecStatus post(Home home, View0 x0, View1 x1)
Post bounds consistent propagator .
#define GECODE_ME_CHECK(me)
Check whether modification event me is failed, and forward failure.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
void min(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
Gecode::FloatVal c(-8, 8)
int n
Number of negative literals for node type.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
Reified binary bounds consistent equality propagator.
int ModEventDelta
Modification event deltas.
Gecode::IntArgs i({1, 2, 3, 4})
#define GECODE_REWRITE(prop, post)
Rewrite propagator by executing post function.
int p
Number of positive literals for node type.
const FloatNum max
Largest allowed float value.
virtual Actor * copy(Space &home)
Copy propagator during cloning.