diff options
-rw-r--r-- | lib/util.ml | 11 | ||||
-rw-r--r-- | lib/util.mli | 1 |
2 files changed, 12 insertions, 0 deletions
diff --git a/lib/util.ml b/lib/util.ml index e18d13cb6..ed3993410 100644 --- a/lib/util.ml +++ b/lib/util.ml @@ -651,6 +651,17 @@ let array_fold_map2' f v1 v2 e = in (v',!e') +let array_distinct v = + try + for i=0 to Array.length v-1 do + for j=i+1 to Array.length v-1 do + if v.(i)=v.(j) then raise Exit + done + done; + true + with Exit -> + false + (* Matrices *) let matrix_transpose mat = diff --git a/lib/util.mli b/lib/util.mli index 52cd24127..7e6c3316f 100644 --- a/lib/util.mli +++ b/lib/util.mli @@ -175,6 +175,7 @@ val array_map_left_pair : ('a -> 'b) -> 'a array -> ('c -> 'd) -> 'c array -> val array_fold_map' : ('a -> 'c -> 'b * 'c) -> 'a array -> 'c -> 'b array * 'c val array_fold_map2' : ('a -> 'b -> 'c -> 'd * 'c) -> 'a array -> 'b array -> 'c -> 'd array * 'c +val array_distinct : 'a array -> bool (*s Matrices *) |