git-subtree-dir: software/mza git-subtree-split: f970a59b177c13ca3dd8aaef8cc6681d83b7e813
20 lines
720 B
MiniZinc
20 lines
720 B
MiniZinc
include "fzn_diffn_nonstrict.mzn";
|
|
include "fzn_diffn_nonstrict_reif.mzn";
|
|
|
|
/** @group globals.packing
|
|
Constrains rectangles \p i, given by their origins (\a x[\p i], \a y[\p i])
|
|
and sizes (\a dx[\p i], \a dy[\p i]), to be non-overlapping. Zero-width
|
|
rectangles can be packed anywhere.
|
|
*/
|
|
predicate diffn_nonstrict(array[int] of var int: x,
|
|
array[int] of var int: y,
|
|
array[int] of var int: dx,
|
|
array[int] of var int: dy) =
|
|
assert(
|
|
index_set(x) = index_set(y) /\
|
|
index_set(x) = index_set(dx) /\
|
|
index_set(x) = index_set(dy),
|
|
"diffn: index set mismatch",
|
|
fzn_diffn_nonstrict(x,y,dx,dy)
|
|
);
|