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++)
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++)
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>
Boolean view for Boolean variables.
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.
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.
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.