CArray
module type ExtS = sig ... end
include ExtS
include S
module Floatarray : sig ... end
First size comparison, then lexicographic order.
Like equal
but does not assume that equality is reflexive: no optimisation is performed if both arrays are physically the same.
First result which is not None, or None; Failure "Array.find2_map"
if the arrays don't have the same length
chop i a
returns (a1, a2)
s.t. a = a1 + a2
and length a1 = n
. Raise Failure "Array.chop"
if i
is not a valid index.
Iter on two arrays. Raise Invalid_argument "Array.iter2_i"
if sizes differ.
Iter on three arrays. Raise Invalid_argument "Array.iter3"
if sizes differ.
fold_left_map f e_0 [|l_1...l_n|] = e_n,[|k_1...k_n|]
where (e_i,k_i)=f e_{i-1} l_i
; see also Smart.fold_left_map
Same, folding on the right
Same than fold_left_map
but passing the index of the array
Same with two arrays, folding on the left; see also Smart.fold_left2_map
val fold_left2_map_i : (int -> 'a -> 'b -> 'c -> 'a * 'd) -> 'a -> 'b array -> 'c array -> 'a * 'd array
Same than fold_left2_map
but passing the index of the array
Same with two arrays, folding on the right
Return true
if every element of the array is unique (for default equality).
filter_with b a
selects elements of a
whose corresponding element in b
is true
. Raise Invalid_argument _
when sizes differ.
module Smart : sig ... end
The functions defined in this module are optimized specializations of the main ones, when the returned array is of same type as one of the original array.
module Fun1 : sig ... end
The functions defined in this module are the same as the main ones, except that they are all higher-order, and their function arguments have an additional parameter. This allows us to prevent closure creation in critical cases.