module DefStrat:Strat.T
with type t = float * float * int
Default strategy for resizable datastructures
type t
is a triple (waste, shrink_trig, min_size)
, where
waste
(default: 1.5) indicates how much the array should
grow in excess when reallocation is triggered, shrink_trig
(default: 0.5) at which percentage of excess elements it should be
shrunk and min_size
(default: 16 elements) is the minimum size
of the resizable array.
type
t
The abstract type of strategies.
val default : t
Default strategy of this strategy implementation.
val grow : t -> int -> int
grow strat new_len
strat
given new virtual length
new_len
. The user should then use this new real length to resize
the datastructure.
Be careful, the new (real) length must be larger than the new
virtual length, otherwise your program will crash!val shrink : t -> real_len:int -> new_len:int -> int
shrink strat ~real_len ~new_len
real_len
and its required new virtual length new_len
wrt. strategy strat
. The user should then use this new real
length to resize the datastructure. If -1
is returned, it is
not necessary to resize.
Be careful, the new (real) length must be larger than the new
virtual length new_len
, otherwise your program may crash!