38 namespace Gecode {
namespace Float {
namespace Arithmetic {
44 template<
class A,
class B,
class C>
49 template<
class A,
class B,
class C>
54 template<
class A,
class B,
class C>
60 template<
class A,
class B,
class C>
66 template<
class A,
class B,
class C>
76 template<
class A,
class B,
class C>
96 template<
class A,
class B,
class C>
101 template<
class A,
class B,
class C>
106 template<
class A,
class B,
class C>
112 template<
class A,
class B,
class C>
118 template<
class A,
class B,
class C>
128 template<
class A,
class B,
class C>
156 assert(x.
size() > 0);
164 for (
int i=x.
size();
i--; ) {
172 for (
int i=x.
size();
i--; )
207 assert(x.
size() > 0);
210 for (
int i = x.
size()-1;
i--; ) {
219 for (
int i = x.
size();
i--; ) {
225 if (x[
i].
max() < maxmin) {
static ExecStatus post(Home home, ViewArray< View > &x, View y)
Post propagator .
Propagator for bounds consistent max operator
ViewArray< View > x
Array of views.
ExecStatus ES_SUBSUMED(Propagator &p)
const FloatNum max
Largest allowed float value.
void max(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
bool overlap(const FloatVal &x, const FloatVal &y)
Binary bounds consistent equality propagator.
virtual Actor * copy(Space &home)
Create copy during cloning.
int ModEvent
Type for modification events.
Base-class for propagators.
const Gecode::ModEvent ME_FLOAT_FAILED
Domain operation has resulted in failure.
Telling has found a new upper bound.
Propagation has computed fixpoint.
Base-class for both propagators and branchers.
#define GECODE_ES_CHECK(es)
Check whether execution status es is failed or subsumed, and forward failure or subsumption.
int p
Number of positive literals for node type.
const FloatNum min
Smallest allowed float value.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
Max(Space &home, Max &p)
Constructor for cloning p.
Gecode::IntArgs i({1, 2, 3, 4})
Execution has resulted in failure.
MaxPropStatus
Status of propagation for nary max.
Mixed ternary propagator.
int PropCond
Type for propagation conditions.
size_t size
The size of the propagator (used during subsumption)
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
static ExecStatus post(Home home, A x0, B x1, C x2)
Post propagator for .
#define GECODE_ME_CHECK(me)
Check whether modification event me is failed, and forward failure.
NaryMax(Space &home, NaryMax &p)
Constructor for cloning p.
void move_lst(int i)
Move view from position size()-1 to position i (truncate array by one)
union Gecode::@593::NNF::@62 u
Union depending on nodetype t.
void min(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
Less or equal propagator.
static ExecStatus post(Home home, A x0, B x1, C x2)
Post propagator for .
Post propagator for SetVar SetOpType SetVar y
virtual Actor * copy(Space &home)
Create copy during cloning.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
bool assigned(View x, int v)
Whether x is assigned to value v.
bool me_modified(ModEvent me)
Check whether modification event me describes variable modification.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
Post propagator for SetVar x
Propagation has not computed fixpoint.
void unique(void)
Remove all duplicate views from array (changes element order)
ExecStatus prop_nary_max(Space &home, Propagator &p, ViewArray< View > &x, View y, PropCond pc)
const Gecode::PropCond PC_FLOAT_BND
Propagate when minimum or maximum of a view changes.
Gecode toplevel namespace
Min(Space &home, Min &p)
Constructor for cloning p.
Bounds consistent n-ary maximum propagator.
int size(void) const
Return size of array (number of elements)
int ModEventDelta
Modification event deltas.
Home class for posting propagators
Propagator for bounds consistent min operator
double FloatNum
Floating point number base type.
bool same(void) const
Test whether array has multiple occurence of the same view.