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>
203 template<
class View,
int o>
243 static void*
operator new(
size_t s,
Space& home);
245 static void operator delete(
void*
p);
247 static void operator delete(
void*
p,
Space& home);
253 bool empty(
void)
const;
317 template<
class View,
class CtrlView, ReifyMode rm>
343 template<
class View,
class CtrlView, ReifyMode rm>
369 template<
class View,
class CtrlView, ReifyMode rm>
396 template<
class View,
class CtrlView, ReifyMode rm>
521 template<
class View,
class CtrlView, ReifyMode rm>
548 template<
class View,
class CtrlView, ReifyMode rm>
636 RelTest rt, View& x0, View& y0, View x1, View y1);
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
LexLqLe(Space &home, bool share, LexLqLe< View > &p)
Constructor for cloning p.
View x0
Views currently subscribed to.
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.
ReEqDomInt(Space &home, bool share, ReEqDomInt &p)
Constructor for cloning p.
static ExecStatus post(Home home, ViewArray< View > &x, ViewArray< View > &y)
Post propagator .
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 .
Lq(Space &home, bool share, Lq &p)
Constructor for cloning p.
View0 x0
View of type View0.
Reified unary propagator.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
Pos * next(void) const
Return next position.
static ExecStatus post(Home home, ViewArray< View > &x)
Post propagator for .
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 .
int c
Integer constant to check.
void push(Space &home, int p)
Push a new position p to be propagated.
int p
Position of view in view array.
ViewArray< View > x
Array of views.
Reified less or equal with integer propagator.
Nq(Space &home, bool share, Nq< View > &p)
Constructor for cloning p.
Base-class for propagators.
NaryEqDom(Space &home, bool share, NaryEqDom< View > &p)
Constructor for cloning p.
Lexical disequality propagator.
n-ary domain consistent equality propagator
bool empty(void) const
Whether no more positions must be propagated.
View1 x1
View of type View1.
ExecStatus resubscribe(Space &home, RelTest rt, View &x0, View &y0, View x1, View y1)
Update subscription.
static ExecStatus post(Home home, View x, int c, CtrlView b)
Post bounds consistent propagator .
static ExecStatus post(Home home, View x0, View x1)
Post propagator .
static ExecStatus post(Home home, View x0, View x1, CtrlView b)
Post bounds consistent propagator .
virtual size_t dispose(Space &home)
Delete propagator and return its size.
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.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function.
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.
LexNq(Home home, ViewArray< View > &x, ViewArray< View > &y)
Constructor for posting.
ViewArray< View > x
View arrays.
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.
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.
int n
Number of negative literals for node type.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
NaryNq(Home home, ViewArray< View > &x)
Constructor for posting.
Council< Index > c
The advisor council.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function.
RelTest
Result of testing relation.
static ExecStatus post(Home home, ViewArray< View > &x, ViewArray< View > &y, bool strict)
Post propagator for lexical order between x and y.
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.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
Binary bounds consistent equality propagator.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
Less or equal propagator.
static ExecStatus post(Home home, View x0, View x1)
Post propagator .
static ExecStatus post(Home home, View x, int c, CtrlView b)
Post propagator for .
Reified binary bounds consistent equality propagator.
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.
static ExecStatus post(Home home, View x0, View x1, CtrlView b)
Post domain consistent propagator .
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.
n-ary less and less or equal propagator
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
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 .
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function.
Node * x
Pointer to corresponding Boolean expression node.
Generic domain change information to be supplied to advisors.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low linear)
void dispose(Space &home)
Free memory for this position.
Lexical ordering propagator.
ReLqInt(Space &home, bool share, ReLqInt &p)
Constructor for cloning p.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function.
bool strict
Determines whether propagator is strict or not.
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 size_t dispose(Space &home)
Delete propagator and return its size.
Base-class for freelist-managed objects.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low unary)
Binary disequality propagator.
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.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
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.
ReEqBnd(Space &home, bool share, ReEqBnd &p)
Constructor for cloning p.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
int i
The position of the view in the view array.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
ViewArray< View > x
Views not yet subscribed to.
Gecode toplevel namespace
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function.
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 .
Le(Space &home, bool share, Le &p)
Constructor for cloning p.
static ExecStatus post(Home home, View x0, View x1)
Post propagator .
Advisors for views (by position in array)
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.
Pos * pos
Stack of positions.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
struct Gecode::@518::NNF::@57::@59 a
For atomic nodes.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
ReEqDom(Space &home, bool share, ReEqDom &p)
Constructor for cloning p.