On this page you can find a repository of programs written in C/C++ as well as compressed data that generates these programs.

The source programs in C/C++ are written in standard C, without using additional data structure, with a  understandable style.

The main idea is can compile and run programs using a standar personal computer.

  • Connected graphs. The script Cnt_Graphs_1_9.cpp  generate connected graphs of 1, 2, ..., 9 vertices. The files generated are CG_num.zip each num represents a graph, that can changed in a adjacency matrix throught Ch_num_to_AM_1_9.cpp with output CG_AM.zip. Also Ch_num_to_CF_AM_1_9.cpp change each num to the canonical form of the adjacency matrix. Here are the first 400 geometrical representations of connected graphs in ggb (Geogebra).
  • The script CanonicalForm.cpp takes a graph from the file graph.txt and return its canonical form. Both Cnt_Graphs_1_9.cpp and CanonicalForm.cpp are using a fast technique called Canonical Labeling, written exclusively to solve the problem of isomorphism of small graphs.
  • Contractible graphs. Is an interesting family of graphs, because its characteristics in the homology calculation. The script G_I.cpp calculate if graph.txt belongs or not to this family. There is another family called collapsible graphics. The script G_coll.cpp performs the corresponding work.
  • Also  CG_to_G_Ivach_Coll_AM.cpp takes each graph from CG_num.zip and filter which are contractible, in the Ivashchenko sense; at the same time verify the conjecture that they are also collapsible graphs. The ouput are files with adjacency matrix. While CG_to_G_Ivach_n_G_coll.cpp show the number of graphs.
  • A graph belong to the contractible graphs family if can be reduced to K(1) using contractible transformations, in particular deleting vertices. A many graph dont belong to this family, but can be reduced throught this operations. This helps to reduce graphs and facilities homology calculation. See other main link.

Many graphs are not in the family contractible graphs; however, it is desirable to determine how far it is possible to eliminate vertices from the graph. The script Ivach.Red.cpp uses the algorithm contractible.graph to eliminate vertices when possible. The following two videos represent a filtration of graphs (actually we can think as the Vietoris-Rips filtration) and the sequence of reduced graphs, with the same persistent homology groups: