Short manual of edge-kempe-switching
------------------------------------

Author: Jan Goedgebeur
In collaboration with: Patric Östergård

Edge-kempe-switching is a program which, for every cubic input graph G, first determines all 3-edge-colourings of G, then performs all edge-Kempe switchings and finally outputs statistics on the number of edge-Kempe equivalence classes.

This program has been tested on Linux and Mac OS X.


Installation
------------

Compile the program using the command "make" or alternatively using "cc -O3 -mpopcnt edge-kempe-switching.c -o edge-kempe-switching".


Usage
-----
An overview of all options can also be found by executing "./edge-kempe-switching -h".


Usage: ./edge-kempe-switching [options]

Valid options are:
  out <x>: Output the graphs which have exactly x edge-Kempe equivalence classes.
  m <rest> <modulo>: Splits the computation in <modulo> (more or less equally big) parts. Here part <rest> will be executed.

When using the option "out <x>" the graphs with exactly x edge-Kempe equivalence classes will be written to stdout and are encoded in multicode format (see Appendix A).


Don't hesitate to contact us at jan.goedgebeur@kuleuven.be if you have any further questions or suggestions.


Changelog
---------

2022-03-21: First release.


Appendix A: definition of the multicode format
----------------------------------------------
This code is binary. The first entry is the number of vertices.
Vertices are numbered 1,...,n. For each vertex x there is a list of
neighbours with higher labels than x, followed by a zero.
The last list is always empty (there are no neighbours of n with a higher number than n),
therefore the last "list" is not followed by a zero.
After the last byte the next graph follows.

The codelength of a graph in multicode is number of vertices + number of edges.

More information about this format + a program to translate multicode to adjacency lists can be found at: http://hog.grinvin.org/Formats.action#multicode

