44 #ifndef __GECODE_INT_REL_HH__ 45 #define __GECODE_INT_REL_HH__ 54 namespace Gecode {
namespace Int {
namespace Rel {
70 template<
class View0,
class View1>
106 template<
class View0,
class View1>
136 template<
class View0,
class View1>
233 template<
class View,
int o>
273 static void*
operator new(
size_t s,
Space& home);
275 static void operator delete(
void*
p);
277 static void operator delete(
void*
p,
Space& home);
283 bool empty(
void)
const;
349 template<
class View,
class CtrlView, ReifyMode rm>
375 template<
class View,
class CtrlView, ReifyMode rm>
401 template<
class View,
class CtrlView, ReifyMode rm>
428 template<
class View,
class CtrlView, ReifyMode rm>
463 template<
class V0,
class V1>
496 template<
class V0,
class V1>
522 template<
class V0,
class V1>
555 template<
class View,
class CtrlView, ReifyMode rm>
582 template<
class View,
class CtrlView, ReifyMode rm>
630 template<
class VX,
class VY>
664 template<
class VX,
class VY>
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
bool empty(void) const
Whether no more positions must be propagated.
VX x1
View currently subscribed to.
Le(Space &home, bool share, Le &p)
Constructor for cloning p.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
int c
Integer constant to check.
static ExecStatus post(Home home, V0 x0, V1 x1)
Post propagator .
ReEqDomInt(Space &home, bool share, ReEqDomInt &p)
Constructor for cloning p.
VX x0
View currently subscribed to.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
static ExecStatus post(Home home, ViewArray< View > &x)
Post bounds consistent propagator .
Binary domain consistent equality propagator.
static ExecStatus post(Home home, ViewArray< View > &x)
Post propagator .
View0 x0
View of type View0.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
Reified unary propagator.
Binary value propagation equality propagator.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
static ExecStatus post(Home home, ViewArray< View > &x)
Post propagator for .
static ExecStatus post(Home home, V0 x0, V1 x1)
Post propagator .
ViewArray< VX > x
Views not yet subscribed to.
int n_subsumed
Number of already subsumed advisors (or views)
Reified binary propagator.
static ExecStatus post(Home home, View0 x0, View1 x1)
Post domain consistent propagator .
LexLqLe(Space &home, bool share, LexLqLe< VX, VY > &p)
Constructor for cloning p.
int c
Integer constant to check.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function.
void push(Space &home, int p)
Push a new position p to be propagated.
VY y1
View currently subscribed to.
int p
Position of view in view array.
ViewArray< View > x
Array of views.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low linear)
Reified less or equal with integer propagator.
Base-class for propagators.
NaryEqDom(Space &home, bool share, NaryEqDom< View > &p)
Constructor for cloning p.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
Lexical disequality propagator.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
n-ary domain consistent equality propagator
View1 x1
View of type View1.
static ExecStatus post(Home home, View x, int c, CtrlView b)
Post bounds consistent propagator .
static ExecStatus post(Home home, View x0, View x1, CtrlView b)
Post bounds consistent propagator .
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
ReLq(Space &home, bool share, ReLq &p)
Constructor for cloning p.
CtrlView b
Boolean control view.
Base-class for both propagators and branchers.
EqBnd(Space &home, bool share, EqBnd< View0, View1 > &p)
Constructor for cloning p.
static ExecStatus post(Home home, View0 x0, View1 x1)
Post bounds consistent propagator .
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
bool run
Whether the propagator is currently running.
Reified less or equal propagator.
Nary disequality propagator.
Index(Space &home, Propagator &p, Council< Index > &c, int i)
Create index advisor.
int c
Integer constant to check.
struct Gecode::@579::NNF::@61::@63 a
For atomic nodes.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
int p
Number of positive literals for node type.
static ExecStatus post(Home home, ViewArray< VX > &x, ViewArray< VY > &y)
Post propagator .
Nq(Space &home, bool share, Nq< V0, V1 > &p)
Constructor for cloning p.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
int n
Number of negative literals for node type.
EqVal(Space &home, bool share, EqVal< View0, View1 > &p)
Constructor for cloning p.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
NaryNq(Home home, ViewArray< View > &x)
Constructor for posting.
Council< Index > c
The advisor council.
RelTest
Result of testing relation.
Pos * next(void) const
Return next position.
virtual void reschedule(Space &home)
Schedule function.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
Reified binary domain consistent equality propagator.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
ModEventDelta med
A set of modification events (used during propagation)
int pop(Space &home)
Pop a position to be propagated and return it.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
ReEqBndInt(Space &home, bool share, ReEqBndInt &p)
Constructor for cloning p.
Binary bounds consistent equality propagator.
Less or equal propagator.
static ExecStatus post(Home home, View x, int c, CtrlView b)
Post propagator for .
Reified binary bounds consistent equality propagator.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
EqDom(Space &home, bool share, EqDom< View0, View1 > &p)
Constructor for cloning p.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
static ExecStatus post(Home home, View x0, View x1, CtrlView b)
Post domain consistent propagator .
virtual void reschedule(Space &home)
Schedule function.
Lq(Space &home, bool share, Lq &p)
Constructor for cloning p.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
static ExecStatus post(Home home, View0 x0, View1 x1)
Post value propagation propagator .
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
ViewArray< VY > y
Views not yet subscribed to.
n-ary less and less or equal propagator
LexNq(Home home, ViewArray< VX > &x, ViewArray< VY > &y)
Constructor for posting.
ExecStatus resubscribe(Space &home, RelTest rt, VX &x0, VY &y0, VX x1, VY y1)
Update subscription.
static ExecStatus post(Home home, View x, int c, CtrlView b)
Post domain consistent propagator .
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
Reified bounds consistent equality with integer propagator.
static ExecStatus post(Home home, View x0, View x1, CtrlView b)
Post propagator for .
static ExecStatus post(Home home, ViewArray< VX > &x, ViewArray< VY > &y, bool strict)
Post propagator for lexical order between x and y.
virtual void reschedule(Space &home)
Schedule function.
Generic domain change information to be supplied to advisors.
void dispose(Space &home)
Free memory for this position.
Lexical ordering propagator.
ReLqInt(Space &home, bool share, ReLqInt &p)
Constructor for cloning p.
static ExecStatus post(Home home, V0 x0, V1 x1)
Post propagator .
virtual size_t dispose(Space &home)
Delete propagator and return its size.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
Base-class for freelist-managed objects.
bool strict
Determines whether propagator is strict or not.
Binary disequality propagator.
Post propagator for SetVar x
ViewArray< VX > x
View arrays.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
NaryLqLe(Space &home, bool share, NaryLqLe< View, o > &p)
Constructor for cloning p.
NaryEqBnd(Space &home, bool share, NaryEqBnd< View > &p)
Constructor for cloning p.
Positions in view array that have to be propagated.
virtual ExecStatus advise(Space &home, Advisor &a, const Delta &d)
Give advice to propagator.
n-ary bounds consistent equality propagator
static const int n_threshold
Compact during cloning when more advisors than that are subsumed.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function.
ReEqBnd(Space &home, bool share, ReEqBnd &p)
Constructor for cloning p.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
static bool same(V0 x0, V1 x1)
Whether views refer to same variable.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function: low unary.
int i
The position of the view in the view array.
Gecode toplevel namespace
Pos(int p, Pos *n)
Initialize with position p and next position n.
CtrlView b
Boolean control view.
static ExecStatus post(Home home, ViewArray< View > &x)
Post domain consistent propagator .
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
Advisors for views (by position in array)
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
int ModEventDelta
Modification event deltas.
Reified domain consistent equality with integer propagator.
Home class for posting propagators
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
VY y0
View currently subscribed to.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
Pos * pos
Stack of positions.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function.
static bool same(V0 x0, V1 x1)
Whether views refer to same variable.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low unary)
ReEqDom(Space &home, bool share, ReEqDom &p)
Constructor for cloning p.