34namespace Gecode {
namespace Int {
namespace NoOverlap {
40 template<
class Dim,
int n>
43 assert((i >= 0) && (i <
n));
46 template<
class Dim,
int n>
49 assert((i >= 0) && (i <
n));
52 template<
class Dim,
int n>
58 template<
class Dim,
int n>
63 template<
class Dim,
int n>
68 template<
class Dim,
int n>
74 template<
class Dim,
int n>
80 template<
class Dim,
int n>
83 for (
int i=0; i<
n; i++)
84 if ((d[i].lec() <= box.
d[i].ssc()) || (box.
d[i].lec() <= d[i].ssc()))
89 template<
class Dim,
int n>
92 for (
int i=0; i<
n; i++)
93 if ((d[i].sec() <= box.
d[i].lsc()) || (box.
d[i].sec() <= d[i].lsc()))
98 template<
class Dim,
int n>
101 for (
int i=0; i<
n; i++)
102 if ((d[i].sec() <= box.
d[i].lsc()) ||
103 (box.
d[i].sec() <= d[i].lsc())) {
105 for (
int j=i+1; j<
n; j++)
106 if ((d[j].sec() <= box.
d[j].lsc()) ||
107 (box.
d[j].sec() <= d[j].lsc()))
110 d[i].nooverlap(home, box.
d[i]);
111 box.
d[i].nooverlap(home, d[i]);
118 template<
class Dim,
int n>
121 for (
int i=0; i<
n; i++)
125 template<
class Dim,
int n>
128 for (
int i=0; i<
n; i++)
129 d[i].subscribe(home,
p);
131 template<
class Dim,
int n>
134 for (
int i=0; i<
n; i++)
137 template<
class Dim,
int n>
140 for (
int i=0; i<
n; i++)
141 d[i].reschedule(home,
p);
149 template<
class Dim,
int n>
154 template<
class Dim,
int n>
159 template<
class Dim,
int n>
164 template<
class Dim,
int n>
170 template<
class Dim,
int n>
177 template<
class Dim,
int n>
184 template<
class Dim,
int n>
190 template<
class Dim,
int n>
196 template<
class Dim,
int n>
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.
Boolean view for Boolean variables.
bool one(void) const
Test whether view is assigned to be one.
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.
void update(Space &home, OptBox< Dim, n > &r)
Update box during cloning.
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.
Base-class for propagators.
void update(const NoOffset &)
Integer-precision integer scale view.
#define GECODE_ME_CHECK(me)
Check whether modification event me is failed, and forward failure.
const Gecode::PropCond PC_BOOL_VAL
Propagate when a view becomes assigned (single value)
Gecode toplevel namespace
@ ES_OK
Execution is okay.
@ ES_FAILED
Execution has resulted in failure.