aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib
diff options
context:
space:
mode:
authorGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2000-03-07 16:59:47 +0000
committerGravatar herbelin <herbelin@85f007b7-540e-0410-9357-904b9bb8a0f7>2000-03-07 16:59:47 +0000
commitfae7d28b00d644e685890f59208932ee0ec15ff4 (patch)
tree775987419918541945bbaf6837b8bb5c969127a2 /lib
parent0916814196a715aac13f74b4f178b5baa0132dff (diff)
Ajout matrix_transpose
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@291 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'lib')
-rw-r--r--lib/util.ml6
-rw-r--r--lib/util.mli4
2 files changed, 10 insertions, 0 deletions
diff --git a/lib/util.ml b/lib/util.ml
index 363e13b1a..963ed5193 100644
--- a/lib/util.ml
+++ b/lib/util.ml
@@ -371,6 +371,12 @@ let array_map3 f v1 v2 v3 =
res
end
+(* Matrices *)
+
+let matrix_transpose mat =
+ List.fold_right (List.map2 (fun p c -> p::c)) mat
+ (if mat = [] then [] else List.map (fun _ -> []) (List.hd mat))
+
(* Functions *)
let compose f g x = f (g x)
diff --git a/lib/util.mli b/lib/util.mli
index 847842865..9378011e2 100644
--- a/lib/util.mli
+++ b/lib/util.mli
@@ -101,6 +101,10 @@ val array_map2_i : (int -> 'a -> 'b -> 'c) -> 'a array -> 'b array -> 'c array
val array_map3 :
('a -> 'b -> 'c -> 'd) -> 'a array -> 'b array -> 'c array -> 'd array
+(*s Matrices *)
+
+val matrix_transpose : 'a list list -> 'a list list
+
(*s Functions. *)
val compose : ('a -> 'b) -> ('c -> 'a) -> 'c -> 'b