-let mk_vertex_and_dsc_vertex =
- function () ->
- let cache1 = Hashtbl.create 5393 in
- let cache2 = Hashtbl.create 5393 in
- (function w ->
- try
- Hashtbl.find cache1 w
- with
- Not_found ->
- let n =
- let rec aux acc =
- function
- [] -> acc
- | he::tl -> aux (acc * 4 + (match he with I -> 1 | C -> 2 | M -> 3)) tl
- in
- aux 0 w
- in
- let v = Graph.Pack.Digraph.V.create n in
- Hashtbl.add cache1 w v;
- Hashtbl.add cache2 v w;
- v),
- (Hashtbl.find cache2)
-;;
-
-let mk_vertex2 =
- function () ->
- let cache1 = Hashtbl.create 5393 in
- function n ->