package batteries
Install
dune-project
Dependency
Authors
Maintainers
Sources
md5=d3d16ffc960e832a1c0e21b7123194e9
sha512=36c8561079aa9fefc864c2f03bd8ae20aa05987bb67e7a9beac3ab4f440dbf7d44f141c172b05fddb1a5b618fc55a27962bb45fc39bd7b3a15d56e0ed3ff3870
doc/batteries.unthreaded/BatBigarray/Array1/index.html
Module BatBigarray.Array1
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.tThe type of one-dimensional big arrays whose elements have OCaml type 'a, representation kind 'b, and memory layout 'c.
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 -> intReturn the size (dimension) of the given one-dimensional big array.
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.
val size_in_bytes : ('a, 'b, 'c) t -> intsize_in_bytes a is the number of elements in a multiplied by a's kind_size_in_bytes.
val get : ('a, 'b, 'c) t -> int -> 'aArray1.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.
val set : ('a, 'b, 'c) t -> int -> 'a -> unitArray1.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;
Extract a sub-array of the given one-dimensional big array. See Genarray.sub_left for more details.
Extract a scalar (zero-dimensional slice) of the given one-dimensional big array. The integer parameter is the index of the scalar to extract. See Bigarray.Genarray.slice_left and Bigarray.Genarray.slice_right for more details.
Copy the first big array to the second big array. See Genarray.blit for more details.
val fill : ('a, 'b, 'c) t -> 'a -> unitFill the given big array with the given value. See Genarray.fill for more details.
Build a one-dimensional big array initialized from the given array.
val map_file :
Unix.file_descr ->
?pos:int64 ->
('a, 'b) kind ->
'c layout ->
bool ->
int ->
('a, 'b, 'c) tMemory mapping of a file as a one-dimensional big array. See Bigarray.Genarray.map_file for more details.
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.
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.
val map :
('a -> 'b) ->
('b, 'c) Bigarray.kind ->
('a, 'd, 'e) t ->
('b, 'c, 'e) tArray1.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) tSame 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 -> unitmodify f a changes each element x in a to f x in-place.
val modifyi : (int -> 'a -> 'a) -> ('a, 'b, 'c) t -> unitSame 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 arrayBuild 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 -> 'aLike 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 -> unitLike 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.