OCaml library : Bigarray.Array1 (original) (raw)
Module Bigarray.Array1
module Array1: sig
.. end
One-dimensional arrays. The Array1
structure provides operations similar to those ofBigarray.Genarray, but specialized to the case of one-dimensional arrays. (The Bigarray.Array2 and Bigarray.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 Bigarrays whose elements have OCaml type 'a
, representation kind 'b
, and memory layout 'c
.
val create : ('a, 'b) [Bigarray.kind](Bigarray.html#TYPEkind) -> 'c [Bigarray.layout](Bigarray.html#TYPElayout) -> int -> ('a, 'b, 'c) [t](Bigarray.Array1.html#TYPEt)
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 Bigarray.Genarray.create.
val init : ('a, 'b) [Bigarray.kind](Bigarray.html#TYPEkind) -> 'c [Bigarray.layout](Bigarray.html#TYPElayout) -> int -> (int -> 'a) -> ('a, 'b, 'c) [t](Bigarray.Array1.html#TYPEt)
Array1.init kind layout dim f
returns a new Bigarray b
of one dimension, whose size is dim
. kind
and layout
determine the array element kind and the array layout as described for Bigarray.Genarray.create.
Each element Array1.get b i
of the array is initialized to the result of f i
.
In other words, Array1.init kind layout dimensions f
tabulates the results of f
applied to the indices of a new Bigarray whose layout is described by kind
, layout
and dim
.
- Since 4.12
val dim : ('a, 'b, 'c) [t](Bigarray.Array1.html#TYPEt) -> int
Return the size (dimension) of the given one-dimensional Bigarray.
val kind : ('a, 'b, 'c) [t](Bigarray.Array1.html#TYPEt) -> ('a, 'b) [Bigarray.kind](Bigarray.html#TYPEkind)
Return the kind of the given Bigarray.
val layout : ('a, 'b, 'c) [t](Bigarray.Array1.html#TYPEt) -> 'c [Bigarray.layout](Bigarray.html#TYPElayout)
Return the layout of the given Bigarray.
val change_layout : ('a, 'b, 'c) [t](Bigarray.Array1.html#TYPEt) -> 'd [Bigarray.layout](Bigarray.html#TYPElayout) -> ('a, 'b, 'd) [t](Bigarray.Array1.html#TYPEt)
Array1.change_layout a layout
returns a Bigarray with the specified layout
, sharing the data with a
(and hence having the same dimension as a
). No copying of elements is involved: the new array and the original array share the same storage space.
- Since 4.06
val size_in_bytes : ('a, 'b, 'c) [t](Bigarray.Array1.html#TYPEt) -> int
- Since 4.03
val get : ('a, 'b, 'c) [t](Bigarray.Array1.html#TYPEt) -> 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 thanArray1.dim a
if a
has C layout. If a
has Fortran layout,x
must be greater or equal than 1
and less or equal thanArray1.dim a
. Otherwise, Invalid_argument
is raised.
val set : ('a, 'b, 'c) [t](Bigarray.Array1.html#TYPEt) -> 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 inBigarray.Array1.get; otherwise, Invalid_argument
is raised.
val sub : ('a, 'b, 'c) [t](Bigarray.Array1.html#TYPEt) -> int -> int -> ('a, 'b, 'c) [t](Bigarray.Array1.html#TYPEt)
val slice : ('a, 'b, 'c) [t](Bigarray.Array1.html#TYPEt) -> int -> ('a, 'b, 'c) [Bigarray.Array0.t](Bigarray.Array0.html#TYPEt)
- Since 4.05
val blit : ('a, 'b, 'c) [t](Bigarray.Array1.html#TYPEt) -> ('a, 'b, 'c) [t](Bigarray.Array1.html#TYPEt) -> unit
val fill : ('a, 'b, 'c) [t](Bigarray.Array1.html#TYPEt) -> 'a -> unit
val of_array : ('a, 'b) [Bigarray.kind](Bigarray.html#TYPEkind) -> 'c [Bigarray.layout](Bigarray.html#TYPElayout) -> 'a array -> ('a, 'b, 'c) [t](Bigarray.Array1.html#TYPEt)
Build a one-dimensional Bigarray initialized from the given array.
val unsafe_get : ('a, 'b, 'c) [t](Bigarray.Array1.html#TYPEt) -> 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](Bigarray.Array1.html#TYPEt) -> 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.