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.