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