Bigarray.Genarray(3o) OCaml library Bigarray.Genarray(3o) NAME Bigarray.Genarray - no description Module Module Bigarray.Genarray Documentation Module Genarray : sig end type ('a, 'b, 'c) t The type Genarray.t is the type of Bigarrays with variable numbers of dimensions. Any number of dimensions between 0 and 16 is supported. The three type parameters to Genarray.t identify the array element kind and layout, as follows: -the first parameter, 'a , is the OCaml type for accessing array ele- ments ( float , int , int32 , int64 , nativeint ); -the second parameter, 'b , is the actual kind of array elements ( float32_elt , float64_elt , int8_signed_elt , int8_unsigned_elt , etc); -the third parameter, 'c , identifies the array layout ( c_layout or fortran_layout ). For instance, (float, float32_elt, fortran_layout) Genarray.t is the type of generic Bigarrays containing 32-bit floats in Fortran layout; reads and writes in this array use the OCaml type float . val create : ('a, 'b) Bigarray.kind -> 'c Bigarray.layout -> int array -> ('a, 'b, 'c) t Genarray.create kind layout dimensions returns a new Bigarray whose el- ement kind is determined by the parameter kind (one of float32 , float64 , int8_signed , etc) and whose layout is determined by the pa- rameter layout (one of c_layout or fortran_layout ). The dimensions parameter is an array of integers that indicate the size of the Bigar- ray in each dimension. The length of dimensions determines the number of dimensions of the Bigarray. For instance, Genarray.create int32 c_layout [|4;6;8|] returns a fresh Bigarray of 32-bit integers, in C layout, having three dimensions, the three dimensions being 4, 6 and 8 respectively. Bigarrays returned by Genarray.create are not initialized: the initial values of array elements is unspecified. Genarray.create raises Invalid_argument if the number of dimensions is not in the range 0 to 16 inclusive, or if one of the dimensions is neg- ative. val init : ('a, 'b) Bigarray.kind -> 'c Bigarray.layout -> int array -> (int array -> 'a) -> ('a, 'b, 'c) t Genarray.init kind layout dimensions f returns a new Bigarray b whose element kind is determined by the parameter kind (one of float32 , float64 , int8_signed , etc) and whose layout is determined by the pa- rameter layout (one of c_layout or fortran_layout ). The dimensions parameter is an array of integers that indicate the size of the Bigar- ray in each dimension. The length of dimensions determines the number of dimensions of the Bigarray. Each element Genarray.get b i is initialized to the result of f i . In other words, Genarray.init kind layout dimensions f tabulates the re- sults of f applied to the indices of a new Bigarray whose layout is de- scribed by kind , layout and dimensions . The index array i may be shared and mutated between calls to f. For instance, Genarray.init int c_layout [|2; 1; 3|] (Array.fold_left (+) 0) returns a fresh Bigarray of integers, in C layout, having three dimensions (2, 1, 3, respectively), with the el- ement values 0, 1, 2, 1, 2, 3. Genarray.init raises Invalid_argument if the number of dimensions is not in the range 0 to 16 inclusive, or if one of the dimensions is neg- ative. Since 4.12.0 val num_dims : ('a, 'b, 'c) t -> int Return the number of dimensions of the given Bigarray. val dims : ('a, 'b, 'c) t -> int array Genarray.dims a returns all dimensions of the Bigarray a , as an array of integers of length Genarray.num_dims a . val nth_dim : ('a, 'b, 'c) t -> int -> int Genarray.nth_dim a n returns the n -th dimension of the Bigarray a . The first dimension corresponds to n = 0 ; the second dimension corre- sponds to n = 1 ; the last dimension, to n = Genarray.num_dims a - 1 . Raises Invalid_argument if n is less than 0 or greater or equal than Genarray.num_dims a . val kind : ('a, 'b, 'c) t -> ('a, 'b) Bigarray.kind Return the kind of the given Bigarray. val layout : ('a, 'b, 'c) t -> 'c Bigarray.layout Return the layout of the given Bigarray. val change_layout : ('a, 'b, 'c) t -> 'd Bigarray.layout -> ('a, 'b, 'd) t Genarray.change_layout a layout returns a Bigarray with the specified layout , sharing the data with a (and hence having the same dimensions as a ). No copying of elements is involved: the new array and the orig- inal array share the same storage space. The dimensions are reversed, such that get v [| a; b |] in C layout becomes get v [| b+1; a+1 |] in Fortran layout. Since 4.04.0 val size_in_bytes : ('a, 'b, 'c) t -> int size_in_bytes a is the number of elements in a multiplied by a 's Bi- garray.kind_size_in_bytes . Since 4.03.0 val get : ('a, 'b, 'c) t -> int array -> 'a Read an element of a generic Bigarray. Genarray.get a [|i1; ...; iN|] returns the element of a whose coordinates are i1 in the first dimen- sion, i2 in the second dimension, ..., iN in the N -th dimension. If a has C layout, the coordinates must be greater or equal than 0 and strictly less than the corresponding dimensions of a . If a has For- tran layout, the coordinates must be greater or equal than 1 and less or equal than the corresponding dimensions of a . If N > 3 , alternate syntax is provided: you can write a.{i1, i2, ..., iN} instead of Genarray.get a [|i1; ...; iN|] . (The syntax a.{...} with one, two or three coordinates is reserved for accessing one-, two- and three-dimensional arrays as described below.) Raises Invalid_argument if the array a does not have exactly N dimen- sions, or if the coordinates are outside the array bounds. val set : ('a, 'b, 'c) t -> int array -> 'a -> unit Assign an element of a generic Bigarray. Genarray.set a [|i1; ...; iN|] v stores the value v in the element of a whose coordinates are i1 in the first dimension, i2 in the second dimension, ..., iN in the N -th dimension. The array a must have exactly N dimensions, and all coordinates must lie inside the array bounds, as described for Genarray.get ; otherwise, Invalid_argument is raised. If N > 3 , alternate syntax is provided: you can write a.{i1, i2, ..., iN} <- v instead of Genarray.set a [|i1; ...; iN|] v . (The syntax a.{...} <- v with one, two or three coordinates is reserved for updat- ing one-, two- and three-dimensional arrays as described below.) val sub_left : ('a, 'b, Bigarray.c_layout) t -> int -> int -> ('a, 'b, Bigarray.c_layout) t Extract a sub-array of the given Bigarray by restricting the first (left-most) dimension. Genarray.sub_left a ofs len returns a Bigarray with the same number of dimensions as a , and the same dimensions as a , except the first dimension, which corresponds to the interval [ofs ... ofs + len - 1] of the first dimension of a . No copying of ele- ments is involved: the sub-array and the original array share the same storage space. In other terms, the element at coordinates [|i1; ...; iN|] of the sub-array is identical to the element at coordinates [|i1+ofs; ...; iN|] of the original array a . Genarray.sub_left applies only to Bigarrays in C layout. Raises Invalid_argument if ofs and len do not designate a valid sub-ar- ray of a , that is, if ofs < 0 , or len < 0 , or ofs + len > Genar- ray.nth_dim a 0 . val sub_right : ('a, 'b, Bigarray.fortran_layout) t -> int -> int -> ('a, 'b, Bigarray.fortran_layout) t Extract a sub-array of the given Bigarray by restricting the last (right-most) dimension. Genarray.sub_right a ofs len returns a Bigar- ray with the same number of dimensions as a , and the same dimensions as a , except the last dimension, which corresponds to the interval [ofs ... ofs + len - 1] of the last dimension of a . No copying of el- ements is involved: the sub-array and the original array share the same storage space. In other terms, the element at coordinates [|i1; ...; iN|] of the sub-array is identical to the element at coordinates [|i1; ...; iN+ofs|] of the original array a . Genarray.sub_right applies only to Bigarrays in Fortran layout. Raises Invalid_argument if ofs and len do not designate a valid sub-ar- ray of a , that is, if ofs < 1 , or len < 0 , or ofs + len > Genar- ray.nth_dim a (Genarray.num_dims a - 1) . val slice_left : ('a, 'b, Bigarray.c_layout) t -> int array -> ('a, 'b, Bigarray.c_layout) t Extract a sub-array of lower dimension from the given Bigarray by fix- ing one or several of the first (left-most) coordinates. Genar- ray.slice_left a [|i1; ... ; iM|] returns the 'slice' of a obtained by setting the first M coordinates to i1 , ..., iM . If a has N dimen- sions, the slice has dimension N - M , and the element at coordinates [|j1; ...; j(N-M)|] in the slice is identical to the element at coordi- nates [|i1; ...; iM; j1; ...; j(N-M)|] in the original array a . No copying of elements is involved: the slice and the original array share the same storage space. Genarray.slice_left applies only to Bigarrays in C layout. Raises Invalid_argument if M >= N , or if [|i1; ... ; iM|] is outside the bounds of a . val slice_right : ('a, 'b, Bigarray.fortran_layout) t -> int array -> ('a, 'b, Bigarray.fortran_layout) t Extract a sub-array of lower dimension from the given Bigarray by fix- ing one or several of the last (right-most) coordinates. Genar- ray.slice_right a [|i1; ... ; iM|] returns the 'slice' of a obtained by setting the last M coordinates to i1 , ..., iM . If a has N dimen- sions, the slice has dimension N - M , and the element at coordinates [|j1; ...; j(N-M)|] in the slice is identical to the element at coordi- nates [|j1; ...; j(N-M); i1; ...; iM|] in the original array a . No copying of elements is involved: the slice and the original array share the same storage space. Genarray.slice_right applies only to Bigarrays in Fortran layout. Raises Invalid_argument if M >= N , or if [|i1; ... ; iM|] is outside the bounds of a . val blit : ('a, 'b, 'c) t -> ('a, 'b, 'c) t -> unit Copy all elements of a Bigarray in another Bigarray. Genarray.blit src dst copies all elements of src into dst . Both arrays src and dst must have the same number of dimensions and equal dimensions. Copying a sub-array of src to a sub-array of dst can be achieved by applying Genarray.blit to sub-array or slices of src and dst . val fill : ('a, 'b, 'c) t -> 'a -> unit Set all elements of a Bigarray to a given value. Genarray.fill a v stores the value v in all elements of the Bigarray a . Setting only some elements of a to v can be achieved by applying Genarray.fill to a sub-array or a slice of a . OCamldoc 2023-02-12 Bigarray.Genarray(3o)
Generated by dwww version 1.15 on Sun Jun 23 04:23:37 CEST 2024.