module Classic:`sig`

..`end`

Classic graphs

`val divisors : ``int -> Sig_pack.S.t`

`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`

.`Invalid_argument`

is `n < 2`

.`val de_bruijn : ``int -> Sig_pack.S.t`

`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`

.`Invalid_argument`

is `n < 1`

or `n > Sys.word_size-1`

.`val vertex_only : ``int -> Sig_pack.S.t`

`vertex_only n`

builds a graph with `n`

vertices and no edge.`val full : ``?self:bool -> int -> Sig_pack.S.t`

`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`

).