Module WTO
module WTO: sig .. end
Returns a weak partial order with Bourdoncle's algorithm.
type partition =
type succ = (int -> unit) -> int -> unit
type scc = {
|
succ : (int -> unit) -> int -> unit; |
|
stack : int Stack.t; |
|
dfn : int array; |
|
mutable num : int; |
}
type visit = {
|
mutable loop : bool; |
|
mutable head : int; |
}
val pretty : Format.formatter -> partition -> unit
val visit : scc -> int -> partition Pervasives.ref -> int
val component : scc -> int -> partition
val partition : size:int -> succ:((int -> unit) -> int -> unit) -> root:int -> partition
Returns a weak partial order with Bourdoncle's algorithm.
val fix : (level:'a -> int -> bool) -> 'a -> partition -> bool
val fixpoint : (level:int -> int -> bool) -> (int -> 'a) -> partition -> unit
Iterate over a weak partial order.
The first function is suppose to update the given node and return true when
stable. It must eventually apply widening to stabilize.
The second function simply update the given node. It should never apply widening.
val loop : (level:int -> int -> bool) -> (int -> 'a) -> partition -> int -> unit