module Array1:One-dimensional arrays. Thesig
..end
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
'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
val kind : ('a, 'b, 'c) t -> ('a, 'b) BatBigarray.kind
val layout : ('a, 'b, 'c) t -> 'c BatBigarray.layout
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_arg
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_arg
is raised.val sub : ('a, 'b, 'c) t ->
int -> int -> ('a, 'b, 'c) t
Genarray.sub_left
for more details.val blit : ('a, 'b, 'c) t ->
('a, 'b, 'c) t -> unit
Genarray.blit
for more details.val fill : ('a, 'b, 'c) t -> 'a -> unit
Genarray.fill
for more details.val of_array : ('a, 'b) BatBigarray.kind ->
'c BatBigarray.layout -> 'a array -> ('a, 'b, 'c) t
val map_file : Unix.file_descr ->
?pos:int64 ->
('a, 'b) BatBigarray.kind ->
'c BatBigarray.layout -> bool -> int -> ('a, 'b, 'c) t
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) 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
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 to_array : ('a, 'b, 'c) t -> 'a array
In case of doubt, don't use them.
val unsafe_get : ('a, 'b, 'c) t -> int -> 'a
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
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.