This page provides supplementary information to
The Automorphism Group of a Self-Dual 72, 36, 16 Code Does Not Contain Z_4. IEEE Transactions on Information Theory 60(6): 3302-3307 (2014) paper.
You can download the log files for the runs corresponding to all 1,558,954 orbits from Lemma 10 (see section III of the manuscript). Due to space considerations all log files for a case are combined into a single tar file and compressed with 7zip.
j= | Program Name | Number of Orbits | Number of Log Files | Compressed File |
1 | Case 4 | 501,142 | 501,142 | case04-logs.tar.7z |
2 | Case 12 | 131,840 | 65,920 | case12-logs.tar.7z |
3 | Case 19 | 925,972 | 925,972 | case19-logs.tar.7z |
For j=2 (which was the first case that we approached) each program run performed a search for 2 consecutive orbits. For j=1 and 3 each run performed a search for a single orbit. The change was employed in order to reduce the scheduling overhead at the Janus supercomputer. Each orbit resulted in tests for i=0...2^36-1 (see section IV of the manuscript).
This is a link to a ZIP file containing precompiled Linux x86_64 binaries and the lists of vectors S^1,S^2,S^3. The dynamicly linked binaries should run on x86_64 Linux machines with GNU libc 2.12 and above and Intel(r) Nehalem microarchitecture and above (or AMD(r) Barcelona microarchitecture and above). We were able to execute the binaries on 3 different clusters and on our home machines. The CPUs we tested the code on were Intel(r) X5660 and X5670; AMD(r) Opteron(tm) 8350, FX 6300 BE, and Athlon(tm) II X2 240. All clusters were running Red Hat(r) Linux. All home machines were running Fedora(r) Linux.
For a quick start just copy the following commands into a Linux (x86_64) terminal (install wget first if needed).
mkdir code3 cd code3 wget http://math.ucdenver.edu/~dayorgov/code3/code3.zip unzip code3.zip ./case12modAny.exe 12345 10000000
This should start producing output like:
[32,-1,-1,-1], [12,32,-1,-1], [0,1,24,-1], [12,21,-1,-1], [0,8,28,-1], [12,26,-1,-1], ...
Hit Ctrl-C to stop the execution. Each line describes the low weight linear combination of the rows of the [I_36 | M^(i)] matrix that is found. Here the indices start at 0 and -1 is a sentinel for 'not used'. For example [12,26,-1,-1] means that the sum of the 13th and 27th rows of the corresponding [I_36 | M^(i)] matrix has weight less than 16.
To save the output redirect the output to a file, e.g.,
./case12modAny.exe 12345 10000000 > case12.12345.modulo10000000
This will test vector 12345 of the list S^(2) of vectors (see section IV of the manuscript).
We casually refer to this as row 12345 of case 12. If you want to test a different row for this case simply change the first parameter 12345 to anything between 1 and 131840 (note that command line parameters are not checked for
correctness).
Output (linear combination that gives a low weight vector) is always produced for the first matrix (i=0)
and for the last matrix (i=2^36-1). Output is also produced when i mod 10^7 = 0 for
i=1...2^36-2.
You can change the second modulo parameter 10000000 to any positive integer.
The output produced is ready for input into Magma Computational Algebra System
and is not optimized for space. If you choose to output modulo 1 the resulting file will be almost a
terabyte; you might want to pipe it through gzip.
For the other two cases (j=1,3) you can use:
case04modAny.exe row modulo (parameter row can be from 1 to 501142)
case19modAny.exe row modulo (parameter row can be from 1 to 925972)
The runtime would typically be between 2 and 5 hours depending on 1) your machine,
2) the case, and 3) the orbit (row) the
program is working on.
The C code used for these binaries is the same as the production C code except
for: 1) the output produced (no output in production for i=1...2^36-2 unless a
success; more details in production at i=0 and i=2^36-1); 2) modulo parameter is
accepted as command line parameter now. 3) case 12 (j=2) is testing a
single orbit now.
If you have questions please contact Daniel Yorgov at dyorgov@purdue.edu.