42 namespace Int {
namespace NoOverlap {
46 for (
int i=m.
size();
i--; )
60 using namespace NoOverlap;
61 if ((
x.size() != w.
size()) || (
x.size() !=
y.size()) ||
62 (
x.size() != h.
size()))
64 for (
int i=
x.size();
i--; ) {
75 = static_cast<Space&>(home).alloc<ManBox<FixDim,2> >(
x.size());
76 for (
int i=
x.size();
i--; ) {
77 b[
i][0] = FixDim(
x[
i],w[
i]);
78 b[
i][1] = FixDim(
y[
i],h[
i]);
92 using namespace NoOverlap;
93 if ((
x.size() != w.
size()) || (
x.size() !=
y.size()) ||
94 (
x.size() != h.
size()) || (
x.size() != m.
size()))
96 for (
int i=
x.size();
i--; ) {
108 = static_cast<Space&>(home).alloc<OptBox<FixDim,2> >(
x.size());
109 for (
int i=
x.size();
i--; ) {
110 b[
i][0] = FixDim(
x[
i],w[
i]);
111 b[
i][1] = FixDim(
y[
i],h[
i]);
118 = static_cast<Space&>(home).alloc<ManBox<FixDim,2> >(
x.size());
120 for (
int i=0;
i<
x.size();
i++)
122 b[
n][0] = FixDim(
x[
i],w[
i]);
123 b[
n][1] = FixDim(
y[
i],h[
i]);
136 using namespace NoOverlap;
143 for (
int i=x0.
size();
i--; ) {
150 for (
int i=x0.
size();
i--; ) {
157 = static_cast<Space&>(home).alloc<ManBox<FlexDim,2> >(x0.
size());
158 for (
int i=x0.
size();
i--; ) {
159 b[
i][0] = FlexDim(x0[
i],w[
i],x1[
i]);
160 b[
i][1] = FlexDim(y0[
i],h[
i],y1[
i]);
174 using namespace NoOverlap;
181 for (
int i=x0.
size();
i--; ) {
188 for (
int i=x0.
size();
i--; ) {
195 = static_cast<Space&>(home).alloc<OptBox<FlexDim,2> >(x0.
size());
196 for (
int i=x0.
size();
i--; ) {
197 b[
i][0] = FlexDim(x0[
i],w[
i],x1[
i]);
198 b[
i][1] = FlexDim(y0[
i],h[
i],y1[
i]);
205 = static_cast<Space&>(home).alloc<ManBox<FlexDim,2> >(x0.
size());
207 for (
int i=0;
i<x0.
size();
i++)
209 b[
n][0] = FlexDim(x0[
i],w[
i],x1[
i]);
210 b[
n][1] = FlexDim(y0[
i],h[
i],y1[
i]);
int size(void) const
Return size of array (number of elements)
bool one(const Gecode::FloatValArgs &a)
Check whether has only one coefficients.
void max(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
void nonnegative(int n, const char *l)
Check whether n is in range and nonnegative, otherwise throw out of limits with information l.
No-overlap propagator for mandatory boxes.
Gecode::IntArgs i(4, 1, 2, 3, 4)
int n
Number of negative literals for node type.
bool assigned(void) const
Test if all variables are assigned.
struct Gecode::@579::NNF::@61::@62 b
For binary nodes (and, or, eqv)
Passing integer variables.
Passing integer arguments.
Passing Boolean variables.
No-overlap propagator for optional boxes.
void nooverlap(Home home, const IntVarArgs &x, const IntArgs &w, const IntVarArgs &y, const IntArgs &h, IntPropLevel)
Post propagator for rectangle packing.
IntPropLevel
Propagation levels for integer propagators.
Integer view for integer variables.
Post propagator for SetVar SetOpType SetVar y
Post propagator for SetVar x
#define GECODE_ME_FAIL(me)
Check whether modification event me is failed, and fail space home.
Gecode toplevel namespace
bool optional(const BoolVarArgs &m)
#define GECODE_POST
Check for failure in a constraint post function.
void check(int n, const char *l)
Check whether n is in range, otherwise throw out of limits with information l.
Home class for posting propagators
Exception: Arguments are of different size
#define GECODE_ES_FAIL(es)
Check whether execution status es is failed, and fail space home.
TFE post(PropagatorGroup g)
Only post functions (but not propagators) from g are considered.