The two programs we used to generate the templates are available in dvorak and pekarek subdirectories. The templates.txt file contains the codes of the templates in the format used by these programs. It can be read using the read_code function and graph::graph (vector &code) constructor from dvorak/torus-common.h, or shown in a human-readable format by running the utility show_graph from the dvorak subdirectory in the following way show-graph n < templates.txt to print out the n-th of the graphs. irreducible.txt contains the list of irreducible graphs (from which the generation starts) in the same format. --------------------------------------------------------------------------- Regarding the program by Zdeněk Dvořák: To generate the total set of templates, you can use use the following commands: g++ torus-gen.cc -o torus-gen -O3 -fopenmp -lgomp torus-gen < irreducible.txt > templates.txt Depending on your hardware, the programs can be expected to run for several hours. --------------------------------------------------------------------------- Regarding the program by Jakub Pekárek: ###### The logic of finding a total template set is composed of the following AmplificationEngine - stores the set, implements amplification CutterEngine - makes templates non-3-colorable ReductionEngine - makes templates critical ResultLibrary - helps store and load templates, contains pre-computed irreducible graphs (see comments inside the code) auxiliary classes: Chromatograph - implemennts various coloring-related logic CutterEngineRealizer - part of the logic of actually adding elements to templates by CutterEngine ###### the program is run from the main, allowing to interactively choose program function other functions include various tests and human-readible outputs describing stored templates most important function are listed here: - input 'r' to run the main method which generates total set - be warned that some templates take a lot of memory to process and the program will fail if the memory is not provided - the program will print each template before amplifying - after all templates are generated from each irreducible-graph-seed, all templates are printed in format loadable by ResultLibrary - input 'x' to invoke exploration of graphs - type 'a[id]' or 'e[id]' to print description of and test templates - (a) is for templates generated by AmplificationEngine (must be generated or loaded first) - (e) is for pre-stored templates generated by another program (already pre-stored) - input 'm' to load templates from ResultLibrary - these will be visible to AmplificationEngine invoked by 'r' and exploration invoked by 'x' - see comments inside relevant source files ####### the following source files are implementations of representation of graphs and various tools Planar - implementation of graphs Crafting - a few tools for easy construction of graphs dfs - a few implementations of DFS used mainly in irreducible engines SeparationTester - utility for testing whether adding an edge creates forbidden separating cycles Box - memory optimization (re-use of graph objects) ExtCoder - utility for encoding graphs into syntax used by another implementation of the same programs ###### the source files also contain previous program to generate irreducible graphs (see previous paper for more details) composed of the following IrreducibleEngines - main header EngineCommon - some utilities used by both sub-engines ExpansionEngine - logic for adding 4-faces ConnectionEngine - logic for satisfying constraints on connecting paths