X-Git-Url: https://scm.cri.ensmp.fr/git/Faustine.git/blobdiff_plain/a6a80a5868c766f1a5360fd27f132fad425f8fe5..a891a827a9bad83d44164ffdd7b28f070c439e46:/interpretor/aux.ml diff --git a/interpretor/aux.ml b/interpretor/aux.ml new file mode 100644 index 0000000..3bc11a6 --- /dev/null +++ b/interpretor/aux.ml @@ -0,0 +1,21 @@ +(** + Module: Aux + Description: all auxiliary functions + @author WANG Haisheng + Created: 12/08/2013 Modified: 13/08/2013 +*) + + + +let array_map2 = fun f -> fun a -> fun b -> + let n1 = Array.length a in + let n2 = Array.length b in + if n1 = n2 then Array.init n1 (fun i -> f a.(i) b.(i)) + else raise (Invalid_argument "Array.map2 size not matched.");; + +let array_map3 = fun f -> fun a -> fun b -> fun c -> + let n1 = Array.length a in + let n2 = Array.length b in + let n3 = Array.length c in + if n1 = n2 && n1 = n3 then Array.init n1 (fun i -> f a.(i) b.(i) c.(i)) + else raise (Invalid_argument "Array.map2 size not matched.");;