Distance finder for quantum codes.
Disclaimer: this code is still very much in early-development, but its main functionality is mostly considered to have been achieved.
Call the script compile.py
. You will find the generated files in the build
folder, most importantly the executable interface
.
The program uses a meet in the middle algorithm by default which uses EOF
.
Run using the flag --zx
for the program to output both the
If one wants to compute the distance using the Brouwer-Zimmerman algorithm (constant memory use, parallelizable) instead of the default, call the interface using the --bz
flag; if you wish to parallelize the computation, use the --threads
flag, followed by maximum number of threads to break the process into.
There are no flags to use.
In the following example, a large CSS code is provided as input and the program outputs 5 4
, meaning that the code has
./interface --bz --zx --threads 16
ZZIIIZZIIIIIIIIIIIII
IXXIIIXXIIIIIIIIIIII
IIZZIIIZZIIIIIIIIIII
IIIXXIIIXXIIIIIIIIII
IIIIIXXIIIXXIIIIIIII
IIIIIIZZIIIZZIIIIIII
IIIIIIIXXIIIXXIIIIII
IIIIIIIIZZIIIZZIIIII
IIIIIIIIIIZZIIIZZIII
IIIIIIIIIIIXXIIIXXII
IIIIIIIIIIIIZZIIIZZI
IIIIIIIIIIIIIXXIIIXX
XXIIIIIIIIIIIIIIIIII
IIXXIIIIIIIIIIIIIIII
IIIIIIIIIIIIIIIXXIII
IIIIIIIIIIIIIIIIIXXI
IIIIIZIIIIZIIIIIIIII
IIIIZIIIIZIIIIIIIIII
IIIIIIIIIIIIIIZIIIIZ
5 4
In the following example, a large CSS code is provided as input and the program outputs 4
, meaning that the code has distance 4.
./interface
ZZIIIZZIIIIIIIIIIIII
IXXIIIXXIIIIIIIIIIII
IIZZIIIZZIIIIIIIIIII
IIIXXIIIXXIIIIIIIIII
IIIIIXXIIIXXIIIIIIII
IIIIIIZZIIIZZIIIIIII
IIIIIIIXXIIIXXIIIIII
IIIIIIIIZZIIIZZIIIII
IIIIIIIIIIZZIIIZZIII
IIIIIIIIIIIXXIIIXXII
IIIIIIIIIIIIZZIIIZZI
IIIIIIIIIIIIIXXIIIXX
XXIIIIIIIIIIIIIIIIII
IIXXIIIIIIIIIIIIIIII
IIIIIIIIIIIIIIIXXIII
IIIIIIIIIIIIIIIIIXXI
IIIIIZIIIIZIIIIIIIII
IIIIZIIIIZIIIIIIIIII
IIIIIIIIIIIIIIZIIIIZ
4
- Write a python wrapper
- Implement the dynamic Brouwer-Zimmerman algorithm
- Enable GPU acceleration for the exponential part
- $$$$$$