Functor New_offsetmap.Make


module Make: 
functor (V : Lattice_With_Isotropy.S) -> sig .. end
Parameters:
V : Lattice_With_Isotropy.S

type t 
type y 
val empty : t
val is_empty : t -> bool
val equal_vv : New_offsetmap.Int.t * New_offsetmap.Int.t * V.t ->
New_offsetmap.Int.t * New_offsetmap.Int.t * V.t -> bool
val equal : t -> t -> bool
val get_max : t -> New_offsetmap.Int.t
exception Empty_tree
val fold_offset : (New_offsetmap.Int.t ->
int64 -> New_offsetmap.Int.t -> New_offsetmap.Int.t -> V.t -> 'a -> 'a) ->
New_offsetmap.Int.t -> t -> 'a -> 'a
val fold : (New_offsetmap.Int.t ->
int64 -> New_offsetmap.Int.t -> New_offsetmap.Int.t -> V.t -> 'a -> 'a) ->
t -> 'a -> 'a
val iter_offset : (New_offsetmap.Int.t ->
int64 -> New_offsetmap.Int.t -> New_offsetmap.Int.t -> V.t -> 'a) ->
New_offsetmap.Int.t -> t -> unit
val iter : (New_offsetmap.Int.t ->
int64 -> New_offsetmap.Int.t -> New_offsetmap.Int.t -> V.t -> 'a) ->
t -> unit
Common folding and iteration operations,
val pretty_node : Format.formatter -> int64 -> int64 -> int64 -> int64 -> V.t -> unit
val pretty_offset : int64 -> Format.formatter -> t -> unit
val pretty : Format.formatter -> t -> unit
val pretty_debug_offset : int64 -> Format.formatter -> t -> unit
val pretty_debug : Format.formatter -> t -> unit
val print_offset : int64 -> t -> unit
val fprint : Format.formatter -> t -> unit
val print : t -> unit
exception Interval_not_found of New_offsetmap.Int.t * New_offsetmap.Int.t
val subtree_from_interval : New_offsetmap.Int.t ->
New_offsetmap.Int.t ->
New_offsetmap.Int.t ->
t -> New_offsetmap.Int.t * t
val make_node : int64 ->
New_offsetmap.Int.t ->
New_offsetmap.Int.t ->
t ->
New_offsetmap.Int.t ->
t ->
New_offsetmap.Int.t ->
New_offsetmap.Int.t -> V.t -> int64 * t
val add_node : int64 ->
int64 ->
int64 ->
New_offsetmap.Int.t ->
V.t -> int64 -> t -> int64 * t
val is_included_generic_exn : (V.t -> V.t -> 'a) ->
New_offsetmap.Int.t ->
t -> New_offsetmap.Int.t -> t -> unit
val is_included : t -> t -> bool
val join : t -> t -> int64 * t
val find_ival : conflate_bottom:bool ->
validity:Base.validity ->
with_alarms:CilE.warn_mode ->
Ival.t -> t -> Abstract_interp.Int.t -> V.t
Find a set of intervals in a given rangemap.
val imprecise_find : New_offsetmap.Int.t -> New_offsetmap.Int.t -> t -> V.t
imprecise_find first_bit last_bit offsetmap returns the value found in the interval (first_bit, last_bit) in offsetmap. If the interval (first_bit, last_bit) spans multiple intervals in offsetmap, all the values found are joined together.
val update_ival : int64 ->
int64 ->
exact:bool ->
mn:New_offsetmap.Int.t ->
mx:New_offsetmap.Int.t ->
period:New_offsetmap.Int.t ->
size:New_offsetmap.Int.t ->
t -> V.t -> t
Update a set of intervals in a given rangemap rooted a given offset. all offsets starting from mn ending in mx must be updated with value v, every period with a given size. Exact or imprecise update can be requested. Return a pair: offset, tree where the tree root begins at offset
val copy_ival : with_alarms:CilE.warn_mode ->
validity:Base.validity ->
Ival.tt -> t -> My_bigint.t -> t
shift_ival with_alarms validity ival size tree creates a new offsetmap from the intervals ival of size size. This offsetmap is rooted at zero (this is a new base for the values).