We provide an open source C++ implementation which can be used to generate
all unfoldings of the
This correspondence is explained in Unfolding the Tesseract by Peter Turney.
We rely on nauty by Brendan McKay and Adolfo Piperno to generate the trees and their automorphism group.
The code is used to calculate the terms of A091159 up to dimension 10; see below for the results.
Check out a video by Matt Parker on unfolding the 4d-cube.
Use ./compile.sh to compile the source code. You can then use ./test.sh to
run tests, or ./compute.sh N to run the computation for a given value of N.
Compiling the code requires nauty and gtest. Running requires the
nauty-gtreeng executable, as well as parallel.
To install these dependencies on a Debian-based system, you can run
sudo apt-get install libnauty2-dev nauty libgtest-dev parallel
For each n.cnt.txt
which contains in each line a decimal number and a graph given in sparse6
format, separated by a
space.
[number] [graph6 string]
For example
11704 :M`ESYOl]sLZt
The graph is a tree on
To get the number of hypercube unfoldings we can add up all the numbers.
| dimension | number of unfoldings | file |
|---|---|---|
| 2 | 1 | 2.cnt.txt |
| 3 | 11 | 3.cnt.txt |
| 4 | 261 | 4.cnt.txt |
| 5 | 9694 | 5.cnt.txt |
| 6 | 502110 | 6.cnt.txt |
| 7 | 33064966 | 7.cnt.txt |
| 8 | 2642657228 | 8.cnt.txt |
| 9 | 248639631948 | 9.cnt.txt |
| 10 | 26941775019280 | 10.cnt.txt |
Update: A follow-up project uses a much better algorithm by Alex Gunning to compute many more terms in this sequence. See the blog post Calculating the number of nets of hypercubes for details.
Authors: Moritz Firsching and Luca Versari.