module I: functor (
G
:
Sig.I
with type V.label = int
) ->
S
with type graph = G.t
Classic Imperative Graphs
Parameters: |
G |
: |
Sig.I with type V.label = int
|
|
type
graph
val divisors : int -> graph
divisors n
builds the graph of divisors.
Vertices are integers from 2
to n
. i
is connected to j
if
and only if i
divides j
.
Raises Invalid_argument
is n < 2
.
val de_bruijn : int -> graph
de_bruijn n
builds the de Bruijn graph of order n
.
Vertices are bit sequences of length n
(encoded as their
interpretation as binary integers). The sequence xw
is connected
to the sequence wy
for any bits x
and y
and any bit sequence
w
of length n-1
.
Raises Invalid_argument
is n < 1
or n > Sys.word_size-1
.
val vertex_only : int -> graph
vertex_only n
builds a graph with n
vertices and no edge.
val full : ?self:bool -> int -> graph
full n
builds a graph with n
vertices and all possible edges.
The optional argument self
indicates if loop edges should be added
(default value is true
).