40#ifndef __GECODE_INT_REL_HH__
41#define __GECODE_INT_REL_HH__
50namespace Gecode {
namespace Int {
namespace Rel {
66 template<
class View0,
class View1>
102 template<
class View0,
class View1>
132 template<
class View0,
class View1>
229 template<
class View,
int o>
269 static void*
operator new(
size_t s,
Space& home);
271 static void operator delete(
void*
p);
273 static void operator delete(
void*
p,
Space& home);
279 bool empty(
void)
const;
345 template<
class View,
class CtrlView, ReifyMode rm>
371 template<
class View,
class CtrlView, ReifyMode rm>
397 template<
class View,
class CtrlView, ReifyMode rm>
424 template<
class View,
class CtrlView, ReifyMode rm>
459 template<
class V0,
class V1>
492 template<
class V0,
class V1>
516 template<
class V0,
class V1>
547 template<
class View,
class CtrlView, ReifyMode rm>
574 template<
class View,
class CtrlView, ReifyMode rm>
622 template<
class VX,
class VY>
656 template<
class VX,
class VY>
int p
Number of positive literals for node type.
int n
Number of negative literals for node type.
struct Gecode::@603::NNF::@65::@67 a
For atomic nodes.
Base-class for both propagators and branchers.
Generic domain change information to be supplied to advisors.
Base-class for freelist-managed objects.
Home class for posting propagators
Reified binary propagator.
Reified unary propagator.
Binary bounds consistent equality propagator.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
EqBnd(Space &home, 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.
Binary domain consistent equality propagator.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
static ExecStatus post(Home home, View0 x0, View1 x1)
Post domain consistent propagator .
EqDom(Space &home, EqDom< View0, View1 > &p)
Constructor for cloning p.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
Binary value propagation equality propagator.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function: low unary.
static ExecStatus post(Home home, View0 x0, View1 x1)
Post value propagation propagator .
virtual Actor * copy(Space &home)
Copy propagator during cloning.
EqVal(Space &home, EqVal< View0, View1 > &p)
Constructor for cloning p.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
Le(Space &home, Le &p)
Constructor for cloning p.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
static ExecStatus post(Home home, V0 x0, V1 x1)
Post propagator .
Lexical ordering propagator.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
ViewArray< VX > x
View arrays.
static ExecStatus post(Home home, ViewArray< VX > &x, ViewArray< VY > &y, bool strict)
Post propagator for lexical order between x and y.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low linear)
LexLqLe(Space &home, LexLqLe< VX, VY > &p)
Constructor for cloning p.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
virtual void reschedule(Space &home)
Schedule function.
bool strict
Determines whether propagator is strict or not.
Lexical disequality propagator.
VY y0
View currently subscribed to.
ExecStatus resubscribe(Space &home, RelTest rt, VX &x0, VY &y0, VX x1, VY y1)
Update subscription.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
VX x0
View currently subscribed to.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
virtual void reschedule(Space &home)
Schedule function.
VX x1
View currently subscribed to.
ViewArray< VX > x
Views not yet subscribed to.
LexNq(Home home, ViewArray< VX > &x, ViewArray< VY > &y)
Constructor for posting.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function.
VY y1
View currently subscribed to.
static ExecStatus post(Home home, ViewArray< VX > &x, ViewArray< VY > &y)
Post propagator .
ViewArray< VY > y
Views not yet subscribed to.
Less or equal propagator.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
static ExecStatus post(Home home, V0 x0, V1 x1)
Post propagator .
virtual Actor * copy(Space &home)
Copy propagator during cloning.
Lq(Space &home, Lq &p)
Constructor for cloning p.
n-ary bounds consistent equality propagator
virtual Actor * copy(Space &home)
Copy propagator during cloning.
static ExecStatus post(Home home, ViewArray< View > &x)
Post bounds consistent propagator .
NaryEqBnd(Space &home, NaryEqBnd< View > &p)
Constructor for cloning p.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function.
n-ary domain consistent equality propagator
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function.
NaryEqDom(Space &home, NaryEqDom< View > &p)
Constructor for cloning p.
static ExecStatus post(Home home, ViewArray< View > &x)
Post domain consistent propagator .
virtual Actor * copy(Space &home)
Copy propagator during cloning.
Advisors for views (by position in array)
Index(Space &home, Propagator &p, Council< Index > &c, int i)
Create index advisor.
int i
The position of the view in the view array.
Positions in view array that have to be propagated.
int p
Position of view in view array.
Pos(int p, Pos *n)
Initialize with position p and next position n.
void dispose(Space &home)
Free memory for this position.
Pos * next(void) const
Return next position.
n-ary less and less or equal propagator
bool empty(void) const
Whether no more positions must be propagated.
void push(Space &home, int p)
Push a new position p to be propagated.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
Council< Index > c
The advisor council.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function.
static const int n_threshold
Compact during cloning when more advisors than that are subsumed.
bool run
Whether the propagator is currently running.
int n_subsumed
Number of already subsumed advisors (or views)
virtual void reschedule(Space &home)
Schedule function.
static ExecStatus post(Home home, ViewArray< View > &x)
Post propagator for .
virtual ExecStatus advise(Space &home, Advisor &a, const Delta &d)
Give advice to propagator.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
NaryLqLe(Space &home, NaryLqLe< View, o > &p)
Constructor for cloning p.
Pos * pos
Stack of positions.
int pop(Space &home)
Pop a position to be propagated and return it.
Nary disequality propagator.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
NaryNq(Home home, ViewArray< View > &x)
Constructor for posting.
static ExecStatus post(Home home, ViewArray< View > &x)
Post propagator .
virtual Actor * copy(Space &home)
Copy propagator during cloning.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function.
Binary disequality propagator.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as low unary)
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
static ExecStatus post(Home home, V0 x0, V1 x1)
Post propagator .
Nq(Space &home, Nq< V0, V1 > &p)
Constructor for cloning p.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
Reified bounds consistent equality with integer propagator.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
int c
Integer constant to check.
static ExecStatus post(Home home, View x, int c, CtrlView b)
Post bounds consistent propagator .
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
ReEqBndInt(Space &home, ReEqBndInt &p)
Constructor for cloning p.
Reified binary bounds consistent equality propagator.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
static ExecStatus post(Home home, View x0, View x1, CtrlView b)
Post bounds consistent propagator .
virtual Actor * copy(Space &home)
Copy propagator during cloning.
ReEqBnd(Space &home, ReEqBnd &p)
Constructor for cloning p.
Reified domain consistent equality with integer propagator.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
static ExecStatus post(Home home, View x, int c, CtrlView b)
Post domain consistent propagator .
ReEqDomInt(Space &home, ReEqDomInt &p)
Constructor for cloning p.
int c
Integer constant to check.
Reified binary domain consistent equality propagator.
ReEqDom(Space &home, ReEqDom &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)
Copy propagator during cloning.
Reified less or equal with integer propagator.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
ReLqInt(Space &home, ReLqInt &p)
Constructor for cloning p.
int c
Integer constant to check.
static ExecStatus post(Home home, View x, int c, CtrlView b)
Post propagator for .
Reified less or equal propagator.
ReLq(Space &home, ReLq &p)
Constructor for cloning p.
static ExecStatus post(Home home, View x0, View x1, CtrlView b)
Post propagator for .
virtual Actor * copy(Space &home)
Copy propagator during cloning.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
Base-class for propagators.
ModEventDelta med
A set of modification events (used during propagation)
int ModEventDelta
Modification event deltas.
const Gecode::PropCond PC_INT_VAL
Propagate when a view becomes assigned (single value)
const Gecode::PropCond PC_INT_BND
Propagate when minimum or maximum of a view changes.
const Gecode::PropCond PC_INT_NONE
Propagation condition to be ignored (convenience)
const Gecode::PropCond PC_INT_DOM
Propagate when domain changes.
RelTest
Result of testing relation.
Gecode toplevel namespace
Post propagator for SetVar x