38namespace Gecode {
namespace Float {
namespace Arithmetic {
40 template<
class A,
class B>
45 template<
class A,
class B>
51 else if (x0.max() <= 0)
55 (void)
new (home)
Abs<A,B>(home,x0,x1);
59 template<
class A,
class B>
64 template<
class A,
class B>
67 return new (home)
Abs<A,B>(home,*
this);
70 template<
class A,
class B>
76 else if (x0.max() <= 0)
int p
Number of positive literals for node type.
Base-class for both propagators and branchers.
Propagator for bounds consistent absolute operator
Abs(Space &home, Abs &p)
Constructor for cloning p.
static ExecStatus post(Home home, A x0, B x1)
Post propagator for .
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual Actor * copy(Space &home)
Create copy during cloning.
Home class for posting propagators
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.
const Gecode::PropCond PC_FLOAT_BND
Propagate when minimum or maximum of a view changes.
Gecode toplevel namespace
void abs(Home home, FloatVar x0, FloatVar x1)
Post propagator for .
@ ES_OK
Execution is okay.
@ ES_FIX
Propagation has computed fixpoint.