We are now looking for a first example code to run our CSS-type simulations with. It shall fulfill the commuting condition and have longer code length than the simple 3-qubit / 11-qubit examples we used until now.
Hypergraph product codes were first introduced by Tillich and Zémor [1] in
2014. They are constructed to fulfill the commuting condition by
design. Suppose two classical block codes with parity check matrix
H_1 of size m_1 \times n_1 and H_2 of size m_2 \times n_2. From this, two larger parity-check matrices H_X and H_Z are
constructed, to account for Z-errors and X-errors, respectively.
In general, the construction [1] reads
H_X = [H_1 \otimes I_{n_2} | I_{m_1} \otimes H_2^T],
H_Z = [I_{n_1} \otimes H_2 | H_1^T \otimes I_{m_2}],
where \otimes denotes the kronecker product and I_n
is the n \times n identity matrix.
The implementation in ldpc_dec chooses one parity-check matrix H using a random code generator and then sets both H_1 and H_2 to H in order to construct H_X and H_Z.
To simulate CSS-type decoding, with the hypergraph-product code, call:
cargo run -- css
[1] J.-P. Tillich and G. Zémor, “Quantum LDPC Codes With Positive Rate and Minimum Distance Proportional to the Square Root of the Blocklength,” IEEE Transactions on Information Theory, vol. 60, no. 2, pp. 1193–1202, 2014.