--- /dev/null
+(**
+ 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.");;