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.
on-restart-benchmarks/share/minizinc/std/piecewise_linear.mzn
Jip J. Dekker f2a1c4e389 Squashed 'software/mza/' content from commit f970a59b17
git-subtree-dir: software/mza
git-subtree-split: f970a59b177c13ca3dd8aaef8cc6681d83b7e813
2021-07-11 16:34:30 +10:00

24 lines
763 B
MiniZinc

include "fzn_piecewise_linear.mzn";
include "fzn_piecewise_linear_reif.mzn";
/** @group globals
Return a piecewise-linear interpolation
of the given point sequence as a function of \a x
*/
function var float: piecewise_linear(var float: x, array[int] of float: xi, array[int] of float: vi) ::promise_total =
let {
var float: res,
constraint piecewise_linear(x,res,xi,vi),
} in res;
/** @group globals
Constrains \a y(\a x) to be a piecewise-linear interpolation of
the provided point sequence.
*/
predicate piecewise_linear(var float: x, var float: y,
array[int] of float: xi, array[int] of float: vi) =
fzn_piecewise_linear(x, y, xi, vi);
%-----------------------------------------------------------------------------%