sig type (!'a, !'b, !'c) t external create : ('a, 'b) Bigarray.kind -> 'c Bigarray.layout -> int array -> ('a, 'b, 'c) Bigarray.Genarray.t = "caml_ba_create" val init : ('a, 'b) Bigarray.kind -> 'c Bigarray.layout -> int array -> (int array -> 'a) -> ('a, 'b, 'c) Bigarray.Genarray.t external num_dims : ('a, 'b, 'c) Bigarray.Genarray.t -> int = "caml_ba_num_dims" val dims : ('a, 'b, 'c) Bigarray.Genarray.t -> int array external nth_dim : ('a, 'b, 'c) Bigarray.Genarray.t -> int -> int = "caml_ba_dim" external kind : ('a, 'b, 'c) Bigarray.Genarray.t -> ('a, 'b) Bigarray.kind = "caml_ba_kind" external layout : ('a, 'b, 'c) Bigarray.Genarray.t -> 'c Bigarray.layout = "caml_ba_layout" external change_layout : ('a, 'b, 'c) Bigarray.Genarray.t -> 'd Bigarray.layout -> ('a, 'b, 'd) Bigarray.Genarray.t = "caml_ba_change_layout" val size_in_bytes : ('a, 'b, 'c) Bigarray.Genarray.t -> int external get : ('a, 'b, 'c) Bigarray.Genarray.t -> int array -> 'a = "caml_ba_get_generic" external set : ('a, 'b, 'c) Bigarray.Genarray.t -> int array -> 'a -> unit = "caml_ba_set_generic" external sub_left : ('a, 'b, Bigarray.c_layout) Bigarray.Genarray.t -> int -> int -> ('a, 'b, Bigarray.c_layout) Bigarray.Genarray.t = "caml_ba_sub" external sub_right : ('a, 'b, Bigarray.fortran_layout) Bigarray.Genarray.t -> int -> int -> ('a, 'b, Bigarray.fortran_layout) Bigarray.Genarray.t = "caml_ba_sub" external slice_left : ('a, 'b, Bigarray.c_layout) Bigarray.Genarray.t -> int array -> ('a, 'b, Bigarray.c_layout) Bigarray.Genarray.t = "caml_ba_slice" external slice_right : ('a, 'b, Bigarray.fortran_layout) Bigarray.Genarray.t -> int array -> ('a, 'b, Bigarray.fortran_layout) Bigarray.Genarray.t = "caml_ba_slice" external blit : ('a, 'b, 'c) Bigarray.Genarray.t -> ('a, 'b, 'c) Bigarray.Genarray.t -> unit = "caml_ba_blit" external fill : ('a, 'b, 'c) Bigarray.Genarray.t -> 'a -> unit = "caml_ba_fill" end