38 #ifndef __GECODE_INT_NO_OVERLAP_HH__
39 #define __GECODE_INT_NO_OVERLAP_HH__
48 namespace Gecode {
namespace Int {
namespace NoOverlap {
140 namespace Gecode {
namespace Int {
namespace NoOverlap {
145 template<
class Dim,
int n>
156 static int dim(
void);
188 template<
class Dim,
int n>
220 namespace Gecode {
namespace Int {
namespace NoOverlap {
void subscribe(Space &home, Propagator &p)
Subscribe propagator p to dimension.
bool mandatory(void) const
Whether box is mandatory.
void subscribe(Space &home, Propagator &p)
Subscribe propagator p to dimension.
const Dim & operator[](int i) const
Access to dimension i.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
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 overlap(const ManBox< Dim, n > &b) const
Check whether this box overlaps with b.
Base-class for propagators.
bool excluded(void) const
Whether box is excluded.
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.
No-overlap propagator for mandatory boxes.
int ssc(void) const
Return smallest start coordinate.
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 optional(void) const
Whether box is optional.
void update(Space &home, bool share, ManBox< Dim, n > &r)
Update box during cloning.
int lsc(void) const
Return largest start coordinate.
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.
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.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
IntView c0
Start coordinate.
bool optional(void) const
Whether box is optional.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function.
OptProp(Home home, Box *b, int n, int m)
Constructor for posting.
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.
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.
virtual size_t dispose(Space &home)
Destructor.
int lsc(void) const
Return largest start coordinate.
Base class for no-overlap propagator.
int ssc(void) const
Return smallest 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].
bool nooverlap(const ManBox< Dim, n > &b) const
Check whether this box does not any longer overlap with b.
bool excluded(void) const
Whether box is excluded.
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.
struct Gecode::@518::NNF::@57::@58 b
For binary nodes (and, or, eqv)
Gecode toplevel namespace
int sec(void) const
Return smallest end coordinate.
int sec(void) const
Return smallest 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 lec(void) const
Return largest end coordinate.
bool mandatory(void) const
Whether box is mandatory.
int lec(void) const
Return largest end 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.