1
0
This repository has been archived on 2025-03-06. You can view files and clone it, but cannot push or open issues or pull requests.
Jip J. Dekker fad1b07018 Squashed 'software/minizinc/' content from commit 4f10c8205
git-subtree-dir: software/minizinc
git-subtree-split: 4f10c82056ffcb1041d7ffef29d77a7eef92cf76
2021-06-16 14:06:46 +10:00

44 lines
741 B
MiniZinc

/***
--- !Test
solvers: [gecode]
options:
all_solutions: true
expected: !Result
status: ALL_SOLUTIONS
solution:
- !Solution
x: 7
y: 1
z: 7
--- !Test # Workaround for chuffed all-solution issue
solvers: [chuffed]
expected: !Result
status: SATISFIED
solution: !Solution
x: 7
y: 1
z: 7
***/
function var int:mydiv(var int: x, var int: y) =
let {constraint y != 0 } in
safediv(x, y)
;
function var int: safediv(var int: x, var int: y) :: promise_total =
let {
var 0..ub(x): q;
var 0..ub(y)-1: r;
constraint q*y + r = x;
constraint r < y;
} in q;
var int: x;
var int: y;
var int: z;
constraint x = 7;
constraint y = 1;
constraint z = mydiv(x,y);
solve satisfy;