aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorherbelin2006-05-28 16:21:41 +0000
committerherbelin2006-05-28 16:21:41 +0000
commit5d299d9e05ec7b2cfb2b982f90046bda8170a3eb (patch)
tree886fd4948b6e91bb7f59cf5714d120f82d2d1b24 /lib
parent10fa54f60acdfc8de6b59659f9fa8bc1ed3c18e6 (diff)
Ajout array_fold_map2Ã'
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@8867 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'lib')
-rw-r--r--lib/util.ml7
-rw-r--r--lib/util.mli2
2 files changed, 9 insertions, 0 deletions
diff --git a/lib/util.ml b/lib/util.ml
index a9d9655eda..cd7f09de33 100644
--- a/lib/util.ml
+++ b/lib/util.ml
@@ -642,6 +642,13 @@ else
let v' = Array.map (fun x -> let (y,e) = f x !e' in e' := e; y) v in
(v',!e')
+let array_fold_map2' f v1 v2 e =
+ let e' = ref e in
+ let v' =
+ array_map2 (fun x1 x2 -> let (y,e) = f x1 x2 !e' in e' := e; y) v1 v2
+ in
+ (v',!e')
+
(* Matrices *)
let matrix_transpose mat =
diff --git a/lib/util.mli b/lib/util.mli
index e93094f898..52cd24127c 100644
--- a/lib/util.mli
+++ b/lib/util.mli
@@ -173,6 +173,8 @@ val array_map_left : ('a -> 'b) -> 'a array -> 'b array
val array_map_left_pair : ('a -> 'b) -> 'a array -> ('c -> 'd) -> 'c array ->
'b array * 'd 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
(*s Matrices *)