File: fcl_sorting.mli

package info (click to toggle)
facile 1.1.4-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, trixie
  • size: 716 kB
  • sloc: ml: 6,862; makefile: 90
file content (30 lines) | stat: -rw-r--r-- 1,758 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
(***********************************************************************)
(*                                                                     *)
(*                           FaCiLe                                    *)
(*                 A Functional Constraint Library                     *)
(*                                                                     *)
(*            Nicolas Barnier, Pascal Brisset, LOG, CENA               *)
(*                                                                     *)
(* Copyright 2004 CENA. All rights reserved. This file is distributed  *)
(* under the terms of the GNU Lesser General Public License.           *)
(***********************************************************************)
(* $Id: fcl_sorting.mli,v 1.11 2003/02/03 15:50:48 brisset Exp $ *)

(** Sorting Constraint *)

val sort : Fcl_var.Fd.t array -> Fcl_var.Fd.t array
  (** [sort a] returns an array of variables constrained to be the variables
     in [a] sorted in increasing order. *)

val sortp : Fcl_var.Fd.t array -> Fcl_var.Fd.t array * Fcl_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 : Fcl_var.Fd.t array -> ?p:Fcl_var.Fd.t array option -> Fcl_var.Fd.t array -> Fcl_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. *)