#use "topfind";; #require "bigarray";; type t = Int8 of (int, Bigarray.int8_signed_elt, Bigarray.c_layout) Bigarray.Genarray.t | UInt8 of (int, Bigarray.int8_unsigned_elt, Bigarray.c_layout) Bigarray.Genarray.t | Int16 of (int, Bigarray.int16_signed_elt, Bigarray.c_layout) Bigarray.Genarray.t | UInt16 of (int, Bigarray.int16_unsigned_elt, Bigarray.c_layout) Bigarray.Genarray.t | Int32 of (int32, Bigarray.int32_elt, Bigarray.c_layout) Bigarray.Genarray.t | Float32 of (float, Bigarray.float32_elt, Bigarray.c_layout) Bigarray.Genarray.t | Float64 of (float, Bigarray.float64_elt, Bigarray.c_layout) Bigarray.Genarray.t ;; let numbers = Array.init 100000 (fun i -> i);; let a = Bigarray.Genarray.create Bigarray.float32 Bigarray.c_layout [|2000|];; let at = Float32 a;; let (Float32 b) = at;; (* let a = Array.init (Bigarray.Array1.dim cs_lat) (fun i -> (cs_lat.{i}, cs_lon.{i}, i)) in *) let do_something x = let foo = Bigarray.array1_of_genarray x in let _ = foo.{0} ** 10.0 in ();; Array.iter (fun _ -> let _ = do_something a in ()) numbers;; Array.iter (fun _ -> let _ = do_something b in ()) numbers;;