The unpac monorepo manager self-hosting as a monorepo using unpac
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

fixed Kneser graphs (remove loops)

+30 -6
+2 -1
src/classic.ml
··· 123 123 let g = Hashtbl.fold (fun _ v g -> B.add_vertex g v) vert (B.empty ()) in 124 124 let g = Hashtbl.fold (fun i vi g -> 125 125 Hashtbl.fold (fun j vj g -> 126 - if i land j = 0 then B.add_edge g vi vj else g) vert g) vert g in 126 + if i <> j && i land j = 0 then B.add_edge g vi vj else g) 127 + vert g) vert g in 127 128 g 128 129 129 130 let petersen () =
+5 -2
src/classic.mli
··· 61 61 (** [kneser n k] builds the Kneser graph K(n, k), where vertices 62 62 correspond to the k-element subsets of a set of n elements, and 63 63 where two vertices are adjacent if and only if the two 64 - corresponding sets are disjoint. *) 64 + corresponding sets are disjoint. 65 + 66 + Each vertex is labeled with a n-bit integer with exactly k bits 67 + set (bit i indicates the selection of the i-th element). *) 65 68 66 69 val petersen : unit -> graph 67 70 (** [petersen ()] builds the Petersen graph, that is isomorphic 68 - to the Kneser graph K(5,2). It has 10 vertices and 15 edges. *) 71 + to the Kneser graph K(5,2). *) 69 72 70 73 end 71 74
+6 -2
src/sig_pack.mli
··· 361 361 (** [kneser n k] builds the Kneser graph K(n, k), where vertices 362 362 correspond to the k-element subsets of a set of n elements, and 363 363 where two vertices are adjacent if and only if the two 364 - corresponding sets are disjoint. *) 364 + corresponding sets are disjoint. 365 + 366 + Each vertex is labeled with a n-bit integer with exactly k 367 + bits set (bit i indicates the selection of the i-th 368 + element). *) 365 369 366 370 val petersen : unit -> t 367 371 (** [petersen ()] builds the Petersen graph, that is isomorphic 368 - to the Kneser graph K(5,2). It has 10 vertices and 15 edges. *) 372 + to the Kneser graph K(5,2). *) 369 373 end 370 374 371 375 (** Random graphs *)
+17 -1
tests/test_classic.ml
··· 15 15 (* *) 16 16 (**************************************************************************) 17 17 18 - open Graph.Pack.Graph 18 + open Graph.Pack.Graph (* undirected graphs *) 19 19 20 20 let g = Classic.petersen () 21 21 let () = assert (nb_vertex g = 10) ··· 24 24 25 25 let g = Classic.kneser ~n:7 ~k:3 26 26 let () = dot_output g "k_7_3.dot" 27 + 28 + let g = Classic.kneser ~n:0 ~k:0 29 + let () = assert (nb_vertex g = 1) 30 + let () = assert (nb_edges g = 0) 31 + 32 + let g = Classic.kneser ~n:1 ~k:0 33 + let () = assert (nb_vertex g = 1) 34 + let () = assert (nb_edges g = 0) 35 + 36 + let g = Classic.kneser ~n:1 ~k:1 37 + let () = assert (nb_vertex g = 1) 38 + let () = assert (nb_edges g = 0) 39 + 40 + let g = Classic.kneser ~n:2 ~k:1 41 + let () = assert (nb_vertex g = 2) 42 + let () = assert (nb_edges g = 1)