Res.MakeBits
Functor that creates resizable bit vectors from reallocation strategies.
module S : sig ... end
module Strategy = S
Module implementing the reallocation strategy
type strategy = Strategy.t
Type of reallocation strategy
val length : t -> int
length ra
val lix : t -> int
lix ra
val real_length : t -> int
real_length ra
val real_lix : t -> int
real_lix ra
val empty : unit -> t
empty ()
same as sempty
but uses default strategy.
val create : int -> t
create n
same as screate
but uses default strategy.
set_strategy ra s
sets the reallocation strategy of resizable array ra
to s
, possibly causing an immediate reallocation.
put_strategy ra s
sets the reallocation strategy of resizable array ra
to s
. Reallocation is only done at later changes in size.
val enforce_strategy : t -> unit
enforce_strategy ra
forces a reallocation if necessary (e.g. after a put_strategy
).
fill ra ofs len el
fills resizable array ra
from offset ofs
with len
elements el
, possibly adding elements at the end. Raises Invalid_argument
if offset ofs
is larger than the length of the array.
blit ra1 ofs1 ra2 ofs2 len
blits resizable array ra1
onto ra2
reading len
elements from offset ofs1
and writing them to ofs2
, possibly adding elements at the end of ra2. Raises Invalid_argument
if ofs1
and len
do not designate a valid subarray of ra1
or if ofs2
is larger than the length of ra2
.
add_one ra el
adds element el
to resizable array ra
, possibly causing a reallocation.
val remove_one : t -> unit
remove_one ra
removes the last element of resizable array ra
, possibly causing a reallocation.
val remove_n : t -> int -> unit
remove_n ra n
removes the last n elements of resizable array ra
, possibly causing a reallocation.
val remove_range : t -> int -> int -> unit
remove_range ra ofs len
removes len
elements from resizable array ra
starting at ofs
and possibly causing a reallocation.
val clear : t -> unit
clear ra
removes all elements from resizable array ra
, possibly causing a reallocation.
val swap : t -> int -> int -> unit
swap ra n m
swaps elements at indices n
and m
.
val swap_in_last : t -> int -> unit
swap_in_last ra n
swaps the last element with the one at position n
.
sof_array s ar
converts a standard array to a resizable one, using strategy s
.
of_array ar
converts a standard array to a resizable one using the default strategy.
sof_list s l
creates a resizable array using strategy s
and the elements in list l
.
of_list l
creates a resizable array using the default strategy and the elements in list l
.
iter f ra
applies the unit-function f
to each element in resizable array ra
.
iteri f ra
applies the unit-function f
to each index and element in resizable array ra
.
fold_left f a ra
left-folds values in resizable array ra
using function f
and start accumulator a
.
fold_right f a ra
right-folds values in resizable array ra
using function f
and start accumulator a
.
filter_in_place p ra
as filter
, but filters in place.
val unsafe_remove_one : t -> unit
val unsafe_remove_n : t -> int -> unit
val unsafe_swap : t -> int -> int -> unit
val unsafe_swap_in_last : t -> int -> unit