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