module Sorting: sig
.. end
Sorting Constraint
val sort : Var.Fd.t array -> Var.Fd.t array
sort a
returns an array of variables constrained to be the variables
in a
sorted in increasing order.
val sortp : Var.Fd.t array -> Var.Fd.t array * Var.Fd.t array
sortp a
same as sort
but returns a couple (sorted, perm)
where sorted
is the array of sorted variables and perm
is an
array of variables constrained to be the permutation between a
and
sorted
, i.e. a.(i) = sorted.(perm.(i))
.
val cstr : Var.Fd.t array -> ?p:Var.Fd.t array option -> Var.Fd.t array -> Cstr.t
cstr a (?perm:None) sorted
returns the constraint ensuring that
sorted
is the result of sorting array a
according to the
permutation perm
. perm
default value is None
, meaning the
argument is irrelevant. Raises Invalid_argument
if
arrays have incompatible length. Not reifiable.