this repo has no description
1include "fzn_diffn_k.mzn";
2include "fzn_diffn_k_reif.mzn";
3
4/** @group globals.packing
5 Constrains \p k-dimensional boxes to be non-overlapping. For each box \p i
6 and dimension \p j, \a box_posn[\p i, \p j] is the base position of the box
7 in dimension \p j, and \a box_size[\p i, \p j] is the size in that dimension.
8 Boxes whose size is 0 in any dimension still cannot overlap with any other box.
9*/
10predicate diffn_k(array[int,int] of var int: box_posn,
11 array[int,int] of var int: box_size) =
12 let { set of int: DIMS= index_set_2of2(box_posn) } in
13 assert(index_set_2of2(box_size) = DIMS /\
14 index_set_1of2(box_posn) = index_set_1of2(box_size),
15 "diffn: index sets of arguments are incorrect",
16 fzn_diffn_k(box_posn, box_size)
17 );