This repo contains the source codes of the paper Toward Low-latency Iterative Decoding of QLDPC Codes Under Circuit-Level Noise.
You need to install Cython to compile the source codes as follows.
python setup.py build_ext --inplace
IBM.ipynb
aims to reproduce the results in Figure 3 of the IBM paper.Round Analysis.ipynb
takes a closer look at the parity check matrix, explains the basic concept of sliding window decoding and show how the windows are extracted.Sliding Window OSD.ipynb
contains the complete pipleline of code/circuit creation, window extraction and BP+OSD is used to decode each window.Data noise.ipynb
introduces basic usage of GDG, and is for producing Figure 4 of our paper.Sliding Window GDG.ipynb
uses GDG on each window for decoding, for Figure 3 and 7.Syndrome code.ipynb
is related to Appendix B.Misc.ipynb
is not related to our paper, but demonstrates my implementation of the following papers: BP4+OSD, 2BGA codes, CAMEL, BPGD.
src
├── include
│ └── bpgd.cpp # base class for handling decimation, multi-thread GDG
│
├── bp_guessing_decoder.pyx # single-thread GDG, it shares interface with the multi-thread version
├── osd_window.pyx # OSD on shortened window PCM
├── codes_q.py # code constructions
├── build_circuit.py # build Stim circuit for BB codes
└── simulation.py # simulation framework for data qubit noise