diff --git a/codes/quantum/qubits/rm/quantum_reed_muller.yml b/codes/quantum/qubits/rm/quantum_reed_muller.yml index 3618a8722..a7b5e0344 100644 --- a/codes/quantum/qubits/rm/quantum_reed_muller.yml +++ b/codes/quantum/qubits/rm/quantum_reed_muller.yml @@ -16,7 +16,7 @@ protection: 'Detects errors on \(d-1\) qubits, corrects errors on \(\left\lfloor features: - rate: '\(\frac{k}{n}\), where \(k = 2^r - {r \choose t} + 2 \sum_{i=0}^{t-1} {r \choose i}\). Additionally, CSS codes formed from binary Reed-Muller codes achieve channel capacity on erasure channels \cite{arXiv:1601.04689}.' + rate: '\(\frac{k}{n}\), where \(k = 2^r - {r \choose t} + 2 \sum_{i=0}^{t-1} {r \choose i}\). Additionally, CSS codes formed from binary Reed-Muller codes achieve channel capacity on erasure channels \cite{doi:10.1109/ISIT.2016.7541599}.' general_gates: - 'Magic state distillation in all prime dimensions \cite{doi:10.1103/PhysRevX.2.041021}' diff --git a/codes/quantum/qubits/stabilizer/qldpc/homological/check_product.yml b/codes/quantum/qubits/stabilizer/qldpc/homological/check_product.yml index 9d44dad2d..b4f331c8c 100644 --- a/codes/quantum/qubits/stabilizer/qldpc/homological/check_product.yml +++ b/codes/quantum/qubits/stabilizer/qldpc/homological/check_product.yml @@ -15,8 +15,7 @@ description: | relations: parents: - - code_id: qubit_css - - code_id: generalized_homological_product_css + - code_id: qubit_generalized_homological_product_css - code_id: qltc detail: 'Quantum check-product constructions yield a sLTC code with constant soundness \(2\rho\) from a classical LTC code with soundness \(\rho\). While these are the first bona-fide QLTC code family because they admit asymptotically constant soundess, they are not practical because their distance is two.' cousins: diff --git a/codes/quantum/qubits/stabilizer/qldpc/homological/fiber_bundle.yml b/codes/quantum/qubits/stabilizer/qldpc/homological/fiber_bundle.yml index aa4da6557..f29727e52 100644 --- a/codes/quantum/qubits/stabilizer/qldpc/homological/fiber_bundle.yml +++ b/codes/quantum/qubits/stabilizer/qldpc/homological/fiber_bundle.yml @@ -24,7 +24,7 @@ features: relations: parents: - - code_id: qubit_css + - code_id: qubit_generalized_homological_product_css - code_id: balanced_product detail: 'Fiber-bundle codes can be formulated in terms of a balanced product \cite{arXiv:2012.09271}.' cousins: diff --git a/codes/quantum/qubits/stabilizer/qldpc/homological/homological_product.yml b/codes/quantum/qubits/stabilizer/qldpc/homological/homological_product.yml index bc4c5ba88..62795d29f 100644 --- a/codes/quantum/qubits/stabilizer/qldpc/homological/homological_product.yml +++ b/codes/quantum/qubits/stabilizer/qldpc/homological/homological_product.yml @@ -41,7 +41,6 @@ features: relations: parents: - - code_id: qubit_css - code_id: fiber_bundle detail: 'Fiber-bundle code can be viewed as a homological product code with a twisted product.' cousins: diff --git a/codes/quantum/qubits/stabilizer/qldpc/homological/lossless_expander.yml b/codes/quantum/qubits/stabilizer/qldpc/homological/lossless_expander.yml index 1ac4c8ba8..eeb126ce3 100644 --- a/codes/quantum/qubits/stabilizer/qldpc/homological/lossless_expander.yml +++ b/codes/quantum/qubits/stabilizer/qldpc/homological/lossless_expander.yml @@ -21,7 +21,7 @@ features: relations: parents: - - code_id: qubit_css + - code_id: qubit_generalized_homological_product_css - code_id: balanced_product cousins: - code_id: ltc diff --git a/codes/quantum/qubits/stabilizer/qldpc/homological/qubit_generalized_homological_product.yml b/codes/quantum/qubits/stabilizer/qldpc/homological/qubit_generalized_homological_product.yml new file mode 100644 index 000000000..d9bc80a67 --- /dev/null +++ b/codes/quantum/qubits/stabilizer/qldpc/homological/qubit_generalized_homological_product.yml @@ -0,0 +1,24 @@ +####################################################### +## This is a code entry in the error correction zoo. ## +## https://github.com/errorcorrectionzoo ## +####################################################### + +code_id: qubit_generalized_homological_product + +name: 'Generalized homological-product qubit CSS code' + +description: | + Qubit CSS code whose properties are determined from an underlying chain complex, which often consists of some type of product of other chain complexes. + +relations: + parents: + - code_id: qubit_css + - code_id: generalized_homological_product_css + + +# Begin Entry Meta Information +_meta: + # Change log - most recent first + changelog: + - user_id: VictorVAlbert + date: '2023-11-13' diff --git a/codes/quantum/qubits/stabilizer/qldpc/homological/ramanujan_tensor_product.yml b/codes/quantum/qubits/stabilizer/qldpc/homological/ramanujan_tensor_product.yml index 6c313df45..27e7740ff 100644 --- a/codes/quantum/qubits/stabilizer/qldpc/homological/ramanujan_tensor_product.yml +++ b/codes/quantum/qubits/stabilizer/qldpc/homological/ramanujan_tensor_product.yml @@ -27,8 +27,7 @@ notes: relations: parents: - - code_id: qubit_css - - code_id: generalized_homological_product_css + - code_id: qubit_generalized_homological_product_css detail: 'Ramanujan codes result from a tensor product of a classical-code and a quantum-code chain complex.' cousins: - code_id: distance_balanced diff --git a/codes/quantum/qubits/stabilizer/qldpc/homological/xyz_product.yml b/codes/quantum/qubits/stabilizer/qldpc/homological/xyz_product.yml index aec4370cc..04fc9c17c 100644 --- a/codes/quantum/qubits/stabilizer/qldpc/homological/xyz_product.yml +++ b/codes/quantum/qubits/stabilizer/qldpc/homological/xyz_product.yml @@ -23,7 +23,7 @@ features: relations: parents: - - code_id: qubit_css + - code_id: qubit_stabilizer - code_id: generalized_homological_product detail: 'XYZ product codes result from a tensor product of three classical-code chain complexes.' - code_id: sc_qldpc diff --git a/codes/quantum/qubits/stabilizer/qldpc/quantum_tanner/dhlv.yml b/codes/quantum/qubits/stabilizer/qldpc/quantum_tanner/dhlv.yml index df42dac2e..0930b50f9 100644 --- a/codes/quantum/qubits/stabilizer/qldpc/quantum_tanner/dhlv.yml +++ b/codes/quantum/qubits/stabilizer/qldpc/quantum_tanner/dhlv.yml @@ -21,7 +21,7 @@ features: relations: parents: - - code_id: qubit_css + - code_id: qubit_generalized_homological_product_css - code_id: balanced_product cousins: - code_id: good_qldpc diff --git a/codes/quantum/qubits/stabilizer/qldpc/quantum_tanner/quantum_tanner.yml b/codes/quantum/qubits/stabilizer/qldpc/quantum_tanner/quantum_tanner.yml index b91b470f5..2ed02b601 100644 --- a/codes/quantum/qubits/stabilizer/qldpc/quantum_tanner/quantum_tanner.yml +++ b/codes/quantum/qubits/stabilizer/qldpc/quantum_tanner/quantum_tanner.yml @@ -65,8 +65,7 @@ notes: relations: parents: - - code_id: qubit_css - - code_id: generalized_homological_product_css + - code_id: qubit_generalized_homological_product_css - code_id: single_shot detail: 'Quantum Tanner codes facilitate single-shot decoding \cite{arxiv:2306.12470}.' cousins: diff --git a/codes/quantum/qubits/stabilizer/topological/color/2dcolor/2d_color.yml b/codes/quantum/qubits/stabilizer/topological/color/2dcolor/2d_color.yml index b01c40200..48f27c264 100644 --- a/codes/quantum/qubits/stabilizer/topological/color/2dcolor/2d_color.yml +++ b/codes/quantum/qubits/stabilizer/topological/color/2dcolor/2d_color.yml @@ -15,13 +15,6 @@ description: | Two-dimensional version of the color code, defined on a two-dimensional trivalent planar graph with 3-colorable faces. Each face hosts two stabilizer generators, a Pauli-\(X\) and a Pauli-\(Z\) string acting on all the qubits of the face. - \begin{figure} - \includegraphics{colorCodeHoneycombHighlightedChecksAdjColor.svg} - \caption{Stabilizer generators and string operators of a 2D color code defined on a honeycomb lattice on a torus. - The plaquette operators generate the stabilizer group of the toric code where each face corresponds to an X or Z plaquette operator. The string operators - are pairs of X and Z logical operators that wrap around the torus. There are only four independent string operators, so there are two independent colors for the string operators \cite{arXiv:1311.0277}.} - \label{figure:toric-code-operators} - \end{figure} String operators are defined on the paths along the edges of the qubit. These paths can have branching points. Each path has two string operators, one corresponding to the \(X\) basis and one corresponding to the \(Z\) basis. @@ -30,6 +23,14 @@ description: | As CSS codes, variants of the 2D color code are constructed out of self-dual codes on cubic planar graphs \cite{doi:10.1016/0095-8956(91)90066-S}. +# \begin{figure} + # \includegraphics{colorCodeHoneycombHighlightedChecksAdjColor.svg} + # \caption{Stabilizer generators and string operators of a 2D color code defined on a honeycomb lattice on a torus. + # The plaquette operators generate the stabilizer group of the toric code where each face corresponds to an X or Z plaquette operator. The string operators + # are pairs of X and Z logical operators that wrap around the torus. There are only four independent string operators, so there are two independent colors for the string operators \cite{arXiv:1311.0277}.} + # \label{figure:toric-code-operators} + # \end{figure} + features: rate: 'For general 2D manifolds, \(kd^2 \leq c(\log k)^2 n\) for some constant \(c\) \cite{arXiv:1301.6588}, meaning that color codes with finite rate can only achieve an asymptotic minimum distance that is logarithmic in \(n\).' diff --git a/codes/quantum/qubits/stabilizer/topological/surface/higher_dimensional_surface.yml b/codes/quantum/qubits/stabilizer/topological/surface/higher_dimensional_surface.yml index 7022f646b..2aa8e5146 100644 --- a/codes/quantum/qubits/stabilizer/topological/surface/higher_dimensional_surface.yml +++ b/codes/quantum/qubits/stabilizer/topological/surface/higher_dimensional_surface.yml @@ -47,8 +47,7 @@ notes: relations: parents: - - code_id: qubit_css - - code_id: generalized_homological_product_css + - code_id: qubit_generalized_homological_product_css detail: 'The generalized surface code is constructed from chain complexes arising from cell complexes of the underlying manifold. Such complexes are not necessarily products of two non-trivial complexes, but the manifolds are picked so that their homology ensures favorable code properties.' diff --git a/codes/quantum/qubits/stabilizer/topological/surface/two_dim/surface/surface.yml b/codes/quantum/qubits/stabilizer/topological/surface/two_dim/surface/surface.yml index baef91c7d..77bf82e51 100644 --- a/codes/quantum/qubits/stabilizer/topological/surface/two_dim/surface/surface.yml +++ b/codes/quantum/qubits/stabilizer/topological/surface/two_dim/surface/surface.yml @@ -104,19 +104,17 @@ features: decoders: - 'Using data from multiple syndrome measurements prior to decoding allows for correcting syndrome measurement errors. Syndrome measurements are distance-preserving because syndrome extraction circuits can be designed to avoid hook errors \cite{arxiv:quant-ph/0110143}.' - 'Expanding diamonds decoder correcting errors of some maximum fractal dimension \cite{manual:{Andrew Landahl, private communication, 2023}}. The sub-threshold failure probability scales as \((p/p_{\text{th}})^{d^\beta}\), where \(p_{\text{th}}\) is the threshold and \(\beta = \log_3 2\).' - - 'MPE decoding is \(NP\)-hard in general \cite{arxiv:2309.10331}.' - - 'ML decoding \cite{arxiv:quant-ph/0110143} is \(\#P\)-hard in general \cite{arxiv:2309.10331}, but an approximate version takes time of order \(O(n^2)\) under independent \(X,Z\) noise for the surface code \cite{arxiv:1405.4883}.' - 'Minimum weight perfect-matching (MWPM) \cite{arXiv:quant-ph/0110143,arXiv:1307.1740} (based on work by Edmonds on finding a matching in a graph \cite{doi:10.4153/CJM-1965-045-4,doi:10.6028/jres.069B.013}), which takes time up to polynomial in \(n\) for the surface code. - For the case of the surface code, minimum-weight decoding reduces to MWPM \cite{arxiv:quant-ph/0110143,doi:10.4153/CJM-1965-045-4,doi:10.1088/0305-4470/15/2/033}.' + For the case of the surface code, minimum-weight decoding reduces to MWPM \cite{arxiv:quant-ph/0110143,doi:10.4153/CJM-1965-045-4,doi:10.1088/0305-4470/15/2/033}. MWPM solves the MPE decoding problem exactly for independent \(X\) and \(Z\) noise. MPE decoding is \(NP\)-hard in general for the surface code \cite{arxiv:2309.10331}.' + - 'Tensor network decoder \cite{arXiv:1405.4883} solves the ML decoding problem under independent \(X,Z\) noise for the surface code and takes time of order \(O(n^2)\) \cite{arxiv:1405.4883}. ML decoding \cite{arxiv:quant-ph/0110143} is \(\#P\)-hard in general for the surface code \cite{arxiv:2309.10331}.' + - 'Union-find decoder \cite{arXiv:1709.06218} solves the MPE decoding problem exactly for low-weight errors under depolarizing noise. A subsequent modification utilizes the continuous signal obtained in the physical implementation of the stabilizer measurement (as opposed to discretizing the signal into a syndrome bit) \cite{arxiv:2107.13589}. Belief union find is a combination of belief-propagation and union-find \cite{arxiv:2203.04948}. + Strictly local (as opposed to partially local) union find \cite{arxiv:2305.18534} has a worst-case runtime of order \(O(d^3)\) in the distance \(d\).' - 'Modified MWPM decoders: pipeline MWPM (accounting for correlations between events) \cite{arXiv:1310.0863,arXiv:2205.09828}, parity blossom MWPM and fusion blossom MWPM \cite{arxiv:2305.08307}, and a modification utilizing the continuous signal obtained in the physical implementation of the stabilizer measurement (as opposed to discretizing the signal into a syndrome bit) \cite{arxiv:2107.13589}.' - 'Belief perfect matching is a combination of belief-propagation and MWPM \cite{arxiv:2203.04948}.' - 'Renormalization group (RG) \cite{arXiv:0911.0581,arXiv:1304.6100,arXiv:1411.3028}.' - 'Markov-chain Monte Carlo \cite{arXiv:1302.2669}.' - - 'Tensor network \cite{arXiv:1405.4883}.' - 'Cellular automaton \cite{doi:10.7907/AHMQ-EG82,arXiv:1511.05579}.' - 'Neural network \cite{arXiv:1610.04238,arXiv:1802.06441,arXiv:1810.07207,arxiv:2208.05758} and reinforcement learning \cite{arxiv:2212.11890}.' - - 'Union-find \cite{arXiv:1709.06218}. A subsequent modification utilizes the continuous signal obtained in the physical implementation of the stabilizer measurement (as opposed to discretizing the signal into a syndrome bit) \cite{arxiv:2107.13589}. Belief union find is a combination of belief-propagation and union-find \cite{arxiv:2203.04948}. - Strictly local (as opposed to partially local) union find \cite{arxiv:2305.18534} has a worst-case runtime of order \(O(d^3)\) in the distance \(d\).' - 'Decoders can be augmented with a pre-decoder \cite{arXiv:2001.11427,arXiv:2208.04660}, which can allow for some processing to be done inside the cryogenic environment of the quantum system \cite{arxiv:2208.08547}.' - 'Sliding-window \cite{arxiv:2209.09219,arxiv:2209.08552} and parallel-window \cite{arxiv:2209.09219} parallelizable decoders, designed to overcome the backlog problem, can be combined with many inner decoders, such as MWPM or union-find.' - 'Generalized belief propagation (GBP) \cite{arxiv:2212.03214} based on a classical version \cite{manual:{J. S. Yedidia, W. T. Freeman, and Y. Weiss, Generalized belief propagation, in NIPS, Vol. 13 (2000) pp. 689–695.}}. diff --git a/codes/quantum/qubits/subsystem/topological/doubled_color.yml b/codes/quantum/qubits/subsystem/topological/color/doubled_color.yml similarity index 100% rename from codes/quantum/qubits/subsystem/topological/doubled_color.yml rename to codes/quantum/qubits/subsystem/topological/color/doubled_color.yml diff --git a/codes/quantum/qubits/subsystem/topological/subsystem_color.yml b/codes/quantum/qubits/subsystem/topological/color/subsystem_color.yml similarity index 100% rename from codes/quantum/qubits/subsystem/topological/subsystem_color.yml rename to codes/quantum/qubits/subsystem/topological/color/subsystem_color.yml diff --git a/codes/quantum/qubits/subsystem/topological/3d_subsystem_surface.yml b/codes/quantum/qubits/subsystem/topological/surface/3d_subsystem_surface.yml similarity index 100% rename from codes/quantum/qubits/subsystem/topological/3d_subsystem_surface.yml rename to codes/quantum/qubits/subsystem/topological/surface/3d_subsystem_surface.yml diff --git a/codes/quantum/qubits/subsystem/topological/subsystem_rotated_surface.yml b/codes/quantum/qubits/subsystem/topological/surface/subsystem_rotated_surface.yml similarity index 100% rename from codes/quantum/qubits/subsystem/topological/subsystem_rotated_surface.yml rename to codes/quantum/qubits/subsystem/topological/surface/subsystem_rotated_surface.yml diff --git a/codes/quantum/qubits/subsystem/topological/subsystem_surface.yml b/codes/quantum/qubits/subsystem/topological/surface/subsystem_surface.yml similarity index 100% rename from codes/quantum/qubits/subsystem/topological/subsystem_surface.yml rename to codes/quantum/qubits/subsystem/topological/surface/subsystem_surface.yml