module Make (
G
:
G
)
: MakeGen
(
G
)
(
NoOpt
)
module W: sig
.. end
module D: Diameter.G.WT
val no_dist : W.t
module Queue: Vector.Queue
(
sig
type
t = Diameter.G.vertex
end
)
val q : Queue.t
val bfs_distances : ?dist_array:D.t option ->
Diameter.G.t -> D.key -> D.t
module Heap: Vector.Heap
(
sig
type
t = Diameter.G.vertex * Diameter.MakeGen.W.t
val compare : 'a * Diameter.MakeGen.W.t -> 'b * Diameter.MakeGen.W.t -> int
end
)
val h : Heap.t
val dijkstra_distances : ?dist_array:D.t option ->
Diameter.G.t -> D.key -> D.t
type
sweep_info = {
|
source : Diameter.G.vertex ; |
|
ecc : W.t ; |
|
last : Diameter.G.vertex ; |
|
ecc' : W.t ; |
|
last' : Diameter.G.vertex ; |
}
val dum_sweep : Diameter.G.vertex -> W.t -> sweep_info
type
estimate =
| |
Ecc |
| |
Ecc' |
| |
Ecc'Ecc |
| |
Dsum |
| |
Dsum' |
| |
Dmin |
| |
Dmin' |
| |
Dmax |
| |
Dmax' |
val str_of_estimate : estimate -> string
type
extr =
val str_of_extr : extr -> string
val periodic_heuristic : 'a array -> int -> 'a
val basic_period : extr array
val big_period : extr array
val full_period : extr array
val pseudo_sum_sweep : extr array
val maxmin_period_bizarre : extr array
val maxmin_period : extr array
val sum_sweep_period : extr array
val sum_sweep_debug : extr array
val sum_sweep_fun : int -> extr
val period : extr array
val periodic_heuristic_eriod : int -> extr
exception Break
type
diam_info = {
}
val diameter_radius_scc : ?diam_only:bool ->
?max_sweeps:int ->
?heuristic:(int -> extr) ->
Diameter.G.t -> D.key -> diam_info