package bap-std
Install
    
    dune-project
 Dependency
Authors
Maintainers
Sources
sha256=9c126781385d2fa9b8edab22e62b25c70bf2f99f6ec78abb7e5e36d63cfa4174
    
    
  md5=5abd9b3628b43f797326034f31ca574f
    
    
  doc/bap/Bap/Std/Interval_tree/Make/index.html
Module Interval_tree.Make
Make(Interval) create an abstract interval tree data type that uses abstract Interval.
Parameters
Signature
val sexp_of_t : ('a -> Sexplib0.Sexp.t) -> 'a t -> Sexplib0.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