diff options
author | 2000-03-07 16:59:47 +0000 | |
---|---|---|
committer | 2000-03-07 16:59:47 +0000 | |
commit | fae7d28b00d644e685890f59208932ee0ec15ff4 (patch) | |
tree | 775987419918541945bbaf6837b8bb5c969127a2 /lib | |
parent | 0916814196a715aac13f74b4f178b5baa0132dff (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.ml | 6 | ||||
-rw-r--r-- | lib/util.mli | 4 |
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 |