package bap-std
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=7c6d0dfe2640e800829617dd150ffe748493fe3f317ed41be44312b2821deb46
md5=5dbc6677d646bec59fd7414f23e88cf8
doc/bap/Bap/Std/Interval_tree/Make_binable/index.html
Module Interval_tree.Make_binable
Make_binable(Interval) create an abstract interval tree data type that uses abstract Interval and can be serialized via the Binable interface.
Parameters
module Interval : Interval_binableSignature
include Core_kernel.Bin_prot.Binable.S1 with type 'a t := 'a t
val bin_size_t : ('a, 'a t) Bin_prot.Size.sizer1val bin_write_t : ('a, 'a t) Bin_prot.Write.writer1val bin_read_t : ('a, 'a t) Bin_prot.Read.reader1val __bin_read_t__ : ('a, int -> 'a t) Bin_prot.Read.reader1val bin_writer_t : ('a, 'a t) Bin_prot.Type_class.S1.writerval bin_reader_t : ('a, 'a t) Bin_prot.Type_class.S1.readerval bin_t : ('a, 'a t) Bin_prot.Type_class.S1.tinclude Ppx_sexp_conv_lib.Sexpable.S1 with type 'a t := 'a t
val t_of_sexp : (Sexplib0__.Sexp.t -> 'a) -> Sexplib0__.Sexp.t -> 'a tinclude S
with type 'a t := 'a t
with type key := Interval.t
with type point := Interval.point
val sexp_of_t :
('a -> Ppx_sexp_conv_lib.Sexp.t) ->
'a t ->
Ppx_sexp_conv_lib.Sexp.tval empty : 'a tempty x an empty interval tree
val singleton : Interval.t -> 'a -> 'a tsingleton k x creates an interval tree that has only one mapping - from the key k to data x
val least : 'a t -> Interval.point optionleast t returns the least bound of the tree t.
Returns None if t is empty.
val greatest : 'a t -> Interval.point optiongreatest t returns the greatest bound of the tree t.
Returns None if t is empty.
val min_binding : 'a t -> (Interval.t * 'a) optionmin_bining t returns the least binding in the tree
val max_binding : 'a t -> (Interval.t * 'a) optionmax_binding t returns the greatest binding in the tree
val add : 'a t -> Interval.t -> 'a -> 'a tadd t k x adds a new binding (k,x) to the mapping.
val dominators : 'a t -> Interval.t -> (Interval.t * 'a) Core_kernel.Sequence.tdominators t k returns all intervals and their associated values that include k.
val intersections :
'a t ->
Interval.t ->
(Interval.t * 'a) Core_kernel.Sequence.tintersections t k returns all intervals and their associated values that intersects with k
val intersects : 'a t -> Interval.t -> boolintersects t k is true iff t contains an interval that intersects with k
val dominates : 'a t -> Interval.t -> booldominates t k is true iff all intervals in t are included in k.
val contains : 'a t -> Interval.point -> boolcontains t p is true if p belongs to at least one interval in t
val lookup : 'a t -> Interval.point -> (Interval.t * 'a) Core_kernel.Sequence.tlookup t p returns bindings of all intervals that contain the given point
val mapi : 'a t -> f:(Interval.t -> 'a -> 'b) -> 'b tmapi k ~f maps all bindings with the function f
filter t ~f returns a tree where all elements for which f returned false are removed.
filter t ~f returns a tree where all elements for which f returned None are removed and all others are mapped.
val filter_mapi : 'a t -> f:(Interval.t -> 'a -> 'b option) -> 'b tfilter t ~f returns a tree where all elements for which f returned None are removed and all others are mapped.
val remove : 'a t -> Interval.t -> 'a tremove t k removes all bindings to the key k
val remove_intersections : 'a t -> Interval.t -> 'a tremove_intersections t k removes all bindings that intersect with the key k.
val remove_dominators : 'a t -> Interval.t -> 'a tremove_dominators t k removes all bindings that are included (dominated by) in the interval k
val to_sequence : 'a t -> (Interval.t * 'a) Core_kernel.Sequence.tto_sequence t returns all bindings in t
Interval Trees implement common container interface
include Core_kernel.Container.S1 with type 'a t := 'a t
val mem : 'a t -> 'a -> equal:('a -> 'a -> bool) -> boolval length : 'a t -> intval is_empty : 'a t -> boolval iter : 'a t -> f:('a -> unit) -> unitval fold : 'a t -> init:'accum -> f:('accum -> 'a -> 'accum) -> 'accumval fold_result :
'a t ->
init:'accum ->
f:('accum -> 'a -> ('accum, 'e) Base__.Result.t) ->
('accum, 'e) Base__.Result.tval fold_until :
'a t ->
init:'accum ->
f:('accum -> 'a -> ('accum, 'final) Base__.Container_intf.Continue_or_stop.t) ->
finish:('accum -> 'final) ->
'finalval exists : 'a t -> f:('a -> bool) -> boolval for_all : 'a t -> f:('a -> bool) -> boolval count : 'a t -> f:('a -> bool) -> intval sum :
(module Base__.Container_intf.Summable with type t = 'sum) ->
'a t ->
f:('a -> 'sum) ->
'sumval find : 'a t -> f:('a -> bool) -> 'a optionval find_map : 'a t -> f:('a -> 'b option) -> 'b optionval to_list : 'a t -> 'a listval to_array : 'a t -> 'a arrayval min_elt : 'a t -> compare:('a -> 'a -> int) -> 'a optionval max_elt : 'a t -> compare:('a -> 'a -> int) -> 'a option