From fae7d28b00d644e685890f59208932ee0ec15ff4 Mon Sep 17 00:00:00 2001 From: herbelin Date: Tue, 7 Mar 2000 16:59:47 +0000 Subject: Ajout matrix_transpose git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@291 85f007b7-540e-0410-9357-904b9bb8a0f7 --- lib/util.ml | 6 ++++++ lib/util.mli | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/lib/util.ml b/lib/util.ml index 363e13b1a6..963ed51930 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 847842865d..9378011e27 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 -- cgit v1.2.3