Batteries user guide : BatBigarray.Array1

# Module BatBigarray.Array1

    module Array1: sig .. end

One-dimensional arrays. The `Array1` structure provides operations similar to those of `Bigarray.Genarray`, but specialized to the case of one-dimensional arrays. (The `Array2` and `Array3` structures below provide operations specialized for two- and three-dimensional arrays.) Statically knowing the number of dimensions of the array allows faster operations, and more precise static type-checking.

    type ('a, 'b, 'c) t = ('a, 'b, 'c) Bigarray.Array1.t

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

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

`Array1.create kind layout dim` returns a new bigarray of one dimension, whose size is `dim`. `kind` and `layout` determine the array element kind and the array layout as described for `Genarray.create`.

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

Return the size (dimension) of the given one-dimensional big array.

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

Return the kind of the given big array.

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

Return the layout of the given big array.

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

`Array1.get a x`, or alternatively `a.{x}`, returns the element of `a` at index `x`. `x` must be greater or equal than `0` and strictly less than `Array1.dim a` if `a` has C layout. If `a` has Fortran layout, `x` must be greater or equal than `1` and less or equal than `Array1.dim a`.
Raises `Invalid_argument` otherwise.

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

`Array1.set a x v`, also written `a.{x} <- v`, stores the value `v` at index `x` in `a`. `x` must be inside the bounds of `a` as described in `Bigarray.Array1.get`;
Raises `Invalid_argument` otherwise.

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

Extract a sub-array of the given one-dimensional big array. See `Genarray.sub_left` for more details.

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

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

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

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

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

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

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

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

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

`Array1.enum e` returns an enumeration on the elements of `e`. Contrarily to the multi-dimensional case, order of elements is specified: elements are in sequential order, from smaller to larger indices.

    val of_enum : ('a, 'b) BatBigarray.kind ->
           'c BatBigarray.layout -> 'a BatEnum.t -> ('a, 'b, 'c) t

`Array1.of_enum kind layout enum` returns a new one-dimensional big array of kind `kind` and layout `layout`, with elements taken from the enumeration `enum` in order.
Since 2.1

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

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

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

Same as `Bigarray.Array1.map`, but the function is applied to the index of the element as the first argument, and the element itself as the second 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 modifyi : (int -> 'a -> 'a) -> ('a, 'b, 'c) t -> unit

Same as `Bigarray.Array1.modify`, but the function is applied to the index of the element as the first argument, and the element itself as the second argument.

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

Build a one-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 -> 'a

Like `Bigarray.Array1.get`, but bounds checking is not always performed. Use with caution and only when the program logic guarantees that the access is within bounds.

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

Like `Bigarray.Array1.set`, but bounds checking is not always performed. Use with caution and only when the program logic guarantees that the access is within bounds.