## Module

Module Bigarray.Array1## Documentation

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 *

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

*val create *
:
**('a, 'b) Bigarray.kind ->**
**'c Bigarray.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) Bigarray.kind**

Return the kind of the given big array.

*val layout *
:
**('a, 'b, 'c) t -> 'c Bigarray.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**
. Otherwise,
**Invalid_argument**
is raised.

*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**
;
otherwise,
**Invalid_argument**
is raised.

*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) Bigarray.kind ->**
**'c Bigarray.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) Bigarray.kind ->**
**'c Bigarray.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 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.