`type ('a, 'b, 'c) t = ('a, 'b, 'c) Stdlib.Bigarray.Array2.t`

The type of two-dimensional big arrays whose elements have OCaml type `'a`, representation kind `'b`, and memory layout `'c`.

`val create : ('a, 'b) kind -> 'c layout -> int -> int -> ('a, 'b, 'c) t`

`Array2.create kind layout dim1 dim2` returns a new bigarray of two dimension, whose size is `dim1` in the first dimension and `dim2` in the second dimension. `kind` and `layout` determine the array element kind and the array layout as described for `Bigarray.Genarray.create`.

`val dim1 : ('a, 'b, 'c) t -> int`

Return the first dimension of the given two-dimensional big array.

`val dim2 : ('a, 'b, 'c) t -> int`

Return the second dimension of the given two-dimensional big array.

`val kind : ('a, 'b, 'c) t -> ('a, 'b) kind`

Return the kind of the given big array.

`val layout : ('a, 'b, 'c) t -> 'c layout`

Return the layout of the given big array.

`val change_layout : ('a, 'b, 'c) t -> 'd layout -> ('a, 'b, 'd) t`

`Array2.change_layout a layout` returns a bigarray with the specified `layout`, sharing the data with `a` (and hence having the same dimensions as `a`). No copying of elements is involved: the new array and the original array share the same storage space. The dimensions are reversed, such that `get v [| a; b |]` in C layout becomes `get v [| b+1; a+1 |]` in Fortran layout.

- since 4.06.0

`val size_in_bytes : ('a, 'b, 'c) t -> int`

`size_in_bytes a` is the number of elements in `a` multiplied by `a`'s `kind_size_in_bytes`.

- since 2.5.0

`val get : ('a, 'b, 'c) t -> int -> int -> 'a`

`Array2.get a x y`, also written `a.{x,y}`, returns the element of `a` at coordinates (`x`, `y`). `x` and `y` must be within the bounds of `a`, as described for `Bigarray.Genarray.get`;

- raises `Invalid_argument`

  otherwise.

`val set : ('a, 'b, 'c) t -> int -> int -> 'a -> unit`

`Array2.set a x y v`, or alternatively `a.{x,y} <- v`, stores the value `v` at coordinates (`x`, `y`) in `a`. `x` and `y` must be within the bounds of `a`, as described for `Bigarray.Genarray.set`;

- raises `Invalid_argument`

  otherwise.

`val sub_left : ('a, 'b, c_layout) t -> int -> int -> ('a, 'b, c_layout) t`

Extract a two-dimensional sub-array of the given two-dimensional big array by restricting the first dimension. See `Bigarray.Genarray.sub_left` for more details. `Array2.sub_left` applies only to arrays with C layout.

`val sub_right : ('a, 'b, fortran_layout) t -> int -> int -> ('a, 'b, fortran_layout) t`

Extract a two-dimensional sub-array of the given two-dimensional big array by restricting the second dimension. See `Bigarray.Genarray.sub_right` for more details. `Array2.sub_right` applies only to arrays with Fortran layout.

`val slice_left : ('a, 'b, c_layout) t -> int -> ('a, 'b, c_layout) Array1.t`

Extract a row (one-dimensional slice) of the given two-dimensional big array. The integer parameter is the index of the row to extract. See `Bigarray.Genarray.slice_left` for more details. `Array2.slice_left` applies only to arrays with C layout.

`val slice_right : ('a, 'b, fortran_layout) t -> int -> ('a, 'b, fortran_layout) Array1.t`

Extract a column (one-dimensional slice) of the given two-dimensional big array. The integer parameter is the index of the column to extract. See `Bigarray.Genarray.slice_right` for more details. `Array2.slice_right` applies only to arrays with Fortran layout.

`val blit : ('a, 'b, 'c) t -> ('a, 'b, 'c) t -> unit`

Copy the first big array to the second big array. See `Bigarray.Genarray.blit` for more details.

`val fill : ('a, 'b, 'c) t -> 'a -> unit`

Fill the given big array with the given value. See `Bigarray.Genarray.fill` for more details.

`val of_array : ('a, 'b) kind -> 'c layout -> 'a array array -> ('a, 'b, 'c) t`

Build a two-dimensional big array initialized from the given array of arrays.

`val map_file : Unix.file_descr -> ?pos:int64 -> ('a, 'b) kind -> 'c layout -> bool -> int -> int -> ('a, 'b, 'c) t`

Memory mapping of a file as a two-dimensional big array. See `Bigarray.Genarray.map_file` for more details.

`val enum : ('a, 'b, 'c) t -> 'a BatEnum.t`

`enum e` returns an enumeration on the elements of `e`. The order of enumeration is unspecified.

`val map : ('a -> 'b) -> ('b, 'c) Stdlib.Bigarray.kind -> ('a, 'd, 'e) t -> ('b, 'c, 'e) t`

`Array2.map f a` applies function `f` to all the elements of `a`, and builds a `Bigarray.Array2.t` with the results returned by `f`.

`val mapij : (int -> int -> 'a -> 'b) -> ('b, 'c) Stdlib.Bigarray.kind -> ('a, 'd, 'e) t -> ('b, 'c, 'e) t`

Same as `Bigarray.Array2.map`, but the function is applied to the index of the element as the first two arguments, and the element itself as the third argument.

`val modify : ('a -> 'a) -> ('a, 'b, 'c) t -> unit`

`modify f a` changes each element `x` in `a` to `f x` in-place.

`val modifyij : (int -> int -> 'a -> 'a) -> ('a, 'b, 'c) t -> unit`

Same as `Bigarray.Array2.modify`, but the function is applied to the index of the element as the first two arguments, and the element itself as the third argument.

`val to_array : ('a, 'b, 'c) t -> 'a array array`

Build a two-dimensional array initialized from the given big array.

## Unsafe operations

In case of doubt, don't use them.

`val unsafe_get : ('a, 'b, 'c) t -> int -> int -> 'a`

Like `Bigarray.Array2.get`, but bounds checking is not always performed.

`val unsafe_set : ('a, 'b, 'c) t -> int -> int -> 'a -> unit`

Like `Bigarray.Array2.set`, but bounds checking is not always performed.