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!