34#ifndef __GECODE_INT_NO_OVERLAP_HH__
35#define __GECODE_INT_NO_OVERLAP_HH__
44namespace Gecode {
namespace Int {
namespace NoOverlap {
140namespace Gecode {
namespace Int {
namespace NoOverlap {
145 template<
class Dim,
int n>
156 static int dim(
void);
190 template<
class Dim,
int n>
224namespace Gecode {
namespace Int {
namespace NoOverlap {
struct Gecode::@603::NNF::@65::@66 b
For binary nodes (and, or, eqv)
int p
Number of positive literals for node type.
int n
Number of negative literals for node type.
Base-class for both propagators and branchers.
Home class for posting propagators
Boolean view for Boolean variables.
Integer view for integer variables.
Base class for no-overlap propagator.
int n
Number of mandatory boxes: b[0] ... b[n-1].
Base(Home home, Box *b, int n)
Constructor for posting with n mandatory boxes.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function.
virtual size_t dispose(Space &home)
Destructor.
static int partition(Box *b, int i, int n)
Partition n boxes b starting at position i.
virtual void reschedule(Space &home)
Schedule function.
Dimension combining coordinate and integer size information.
void subscribe(Space &home, Propagator &p)
Subscribe propagator p to dimension.
void update(Space &home, FixDim &d)
Update dimension during cloning.
void reschedule(Space &home, Propagator &p)
Schedule propagator p.
int lsc(void) const
Return largest start coordinate.
FixDim(void)
Default constructor.
int ssc(void) const
Return smallest start coordinate.
int sec(void) const
Return smallest end coordinate.
ExecStatus nooverlap(Space &home, int n, int m)
Dimension must not overlap with coordinates n to m.
int lec(void) const
Return largest end coordinate.
void cancel(Space &home, Propagator &p)
Cancel propagator p from dimension.
Dimension combining coordinate and integer view size information.
int ssc(void) const
Return smallest start coordinate.
int lsc(void) const
Return largest start coordinate.
IntView c1
End coordinate.
void subscribe(Space &home, Propagator &p)
Subscribe propagator p to dimension.
int sec(void) const
Return smallest end coordinate.
FlexDim(void)
Default constructor.
ExecStatus nooverlap(Space &home, int n, int m)
Dimension must not overlap with coordinates n to m.
IntView c0
Start coordinate.
void reschedule(Space &home, Propagator &p)
Schedule propagator p.
void cancel(Space &home, Propagator &p)
Cancel propagator p from dimension.
void update(Space &home, FlexDim &d)
Update dimension during cloning.
int lec(void) const
Return largest end coordinate.
static int dim(void)
Return number of dimensions.
bool nooverlap(const ManBox< Dim, n > &b) const
Check whether this box does not any longer overlap with b.
const Dim & operator[](int i) const
Access to dimension i.
void reschedule(Space &home, Propagator &p)
Schedule propagator p.
void update(Space &home, ManBox< Dim, n > &r)
Update box during cloning.
bool overlap(const ManBox< Dim, n > &b) const
Check whether this box overlaps with b.
bool excluded(void) const
Whether box is excluded.
bool mandatory(void) const
Whether box is mandatory.
void subscribe(Space &home, Propagator &p)
Subscribe propagator p to box.
bool optional(void) const
Whether box is optional.
ExecStatus exclude(Space &home)
Exclude box.
void cancel(Space &home, Propagator &p)
Cancel propagator p from box.
No-overlap propagator for mandatory boxes.
ManProp(Home home, Box *b, int n)
Constructor for posting.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual size_t dispose(Space &home)
Destructor.
static ExecStatus post(Home home, Box *b, int n)
Post propagator for boxes b.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
void update(Space &home, OptBox< Dim, n > &r)
Update box during cloning.
BoolView o
Whether box is optional or not.
bool optional(void) const
Whether box is optional.
bool mandatory(void) const
Whether box is mandatory.
ExecStatus exclude(Space &home)
Exclude box.
void reschedule(Space &home, Propagator &p)
Schedule propagator p.
void subscribe(Space &home, Propagator &p)
Subscribe propagator p to box.
void cancel(Space &home, Propagator &p)
Cancel propagator p from box.
bool excluded(void) const
Whether box is excluded.
No-overlap propagator for optional boxes.
virtual size_t dispose(Space &home)
Destructor.
static ExecStatus post(Home home, Box *b, int n)
Post propagator for boxes b.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
OptProp(Home home, Box *b, int n, int m)
Constructor for posting.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
int m
Number of optional boxes: b[n] ... b[n+m-1].
Base-class for propagators.
ModEventDelta med
A set of modification events (used during propagation)
int ModEventDelta
Modification event deltas.
Gecode toplevel namespace
Post propagator for SetVar SetOpType SetVar SetRelType r