Here is a list of QLDPC codes.
Code Description
Abelian topological code Code whose codewords realize topological order associated with an abelian group. Stub.
Balanced product code Family of CSS quantum codes based on products of two classical codes which share common symmetries. The balanced product can be understood as taking the usual tensor/hypergraph product and then factoring out the symmetries factored. This reduces the overall number of physical qubits \(n\), while, under certain circumstances, leaving the number of encoded qubits \(k\) and the code distance \(d\) invariant. This leads to a more favourable encoding rate \(k/n\) and normalized distance \(d/n\) compared to the tensor/hypergraph product.
Clifford-deformed surface code (CDSC) A generally non-CSS derivative of the surface code defined by applying a constant-depth Clifford circuit to the original (CSS) surface code. Unlike the surface code, CDSCs include codes whose thresholds and subthreshold performance are enhanced under noise biased towards dephasing. Examples of CDSCs include the XY code, XZZX code, and random CDSCs.
Color code A family of abelian topological CSS stabilizer codes defined on a \(D\)-dimensional lattice which satisfies two properties: The lattice is (1) a homogeneous simplicial \(D\)-complex obtained as a triangulation of the interior of a \(D\)-simplex and (2) is \(D+1\)-colorable. Qubits are placed on the \(D\)-simplices and generators are supported on suitable simplices [1]. For 2-dimensional color code, the lattice must be such that it is 3-valent and has 3-colorable faces, such as a honeycomb lattice. The qubits are placed on the vertices and two stabilizer generators are placed on each face [2].
Dinur-Hsieh-Lin-Vidick (DHLV) code Stub.
Distance-balanced code CSS stabilizer code constructed from a CSS code and a classical code using a distance-balancing procedure based on a generalized homological product. The initial code is said to be unbalanced, i.e., tailored to noise biased toward either bit- or phase-flip errors, and the procedure can result in a code that is treats both types of errors on a more equal footing. The original distance-balancing procedure [3], later generalized in Ref. [4], can yield QLDPC codes; see Thm. 1 in Ref. [3].
Double-semion code Stub.
Expander lifted-product code Family of \(G\)-lifted product codes constructed using two random classical Tanner codes defined on expander graphs. For certain parameters, this construction yields the first asymptotically good QLDPC codes. Classical codes resulting from this construction are one of the first two families of \(c^3\)-LTCs.
Fiber-bundle code Also called a twisted product code. CSS code constructed by combining a random LDPC code as the base and a cyclic repetition code as the fiber of a fiber bundle. After applying distance balancing, a QLDPC code with distance \(\Omega(n^{3/5}\text{polylog}(n))\) and rate \(\Omega(n^{-2/5}\text{polylog}(n))\) is obtained.
Fractal surface code Kitaev surface code on a fractal geometry, which is obtained by removing qubits from the surface code on a cubic lattice. Stub.
Fracton code A code whose codewords make up the ground-state space of a fracton-phase Hamiltonian.
Freedman-Meyer-Luo code Hyperbolic surface code constructed using cellulation of a Riemannian Manifold \(M\) exhibiting systolic freedom [5]. Codes derived from such manifolds can achieve distances scaling better than \(\sqrt{n}\), something that is impossible using closed 2D surfaces or 2D surfaces with boundaries [6]. Improved codes are obtained by studying a weak family of Riemann metrics on closed 4-dimensional manifolds \(S^2\otimes S^2\) with the \(Z_2\)-homology.
Generalized homological product code Stabilizer code formulated in terms a chain complex consisting of some type of product of other chain complexes. The CSS-to-homology correspondence yields an interpretation of codes in terms of manifolds, thus allowing for the use of various products from topology in constructing codes. The codes participating in the product can be quantum, classical, or mixed. Products can be of more than two codes, in which case the output code need not be of CSS type (e.g., for XYZ-product codes). The simplest product is a tensor product, with more general products imposing equivalence or symmetry relations on the outputs of the tensor product. A product of two codes can be interpreted as a fiber bundle, with one element of the product being the base and the other being the fiber.
Golden code Variant of the Guth-Lubotzky hyperbolic surface code that uses regular tessellations for 4-dimensional hyperbolic space.
Good QLDPC code Also called asymptotically good QLDPC codes. A family of QLDPC codes \([[n_i,k_i,d_i]]\) whose asymptotic rate \(\lim_{i\to\infty} k_i/n_i\) and asymptotic distance \(\lim_{i\to\infty} d_i/n_i\) are both positive.
Guth-Lubotzky code Hyperbolic surface code based on cellulations of certain four-dimensional manifolds. The manifolds are shown to have good homology and systolic properties for the purposes of code construction, with corresponding codes exhibiting linear rate.
Haah cubic code Class of stabilizer codes on a length-\(L\) cubic lattice with one or two qubits per site. We also require that the stabilizer group \(\mathsf{S}\) is translation invariant and generated by two types of operators with support on a cube. In the non-CSS case, these two are related by spatial inversion. For CSS codes, we require that the product of all corner operators is the identity. We lastly require that there are no non-trival ''string operators'', meaning that single-site operators are a phase, and any period one logical operator \(l \in \mathsf{S}^{\perp}\) is just a phase. Haah showed in his original construction that there is exactly one non-CSS code of this form, and 17 CSS codes [7]. The non-CSS code is labeled code 0, and the rest are numbered from 1 - 17. Codes 1-4, 7, 8, and 10 do not have string logical operators [7][8].
Hemicubic code Stub.
Higher-dimensional surface code A family of Kitaev surface codes on planar or toric surfaces of dimension greater than two. Stub.
Homological product code CSS code formulated using the homological product of two chain complexes (see CSS-to-homology correspondence). Stub.
Hyperbolic surface code An extension of the Kitaev surface code construction to hyperbolic manifolds in dimension two or greater. Given a cellulation of a manifold, qubits are put on \(i\)-dimensional faces, \(X\)-type stabilizers are associated with \((i-1)\)-faces, while \(Z\)-type stabilizers are associated with \(i+1\)-faces.
Hypergraph product code A family of \([[n,k,d]]\) CSS codes whose construction is based on two binary linear seed codes \(C_1\) and \(C_2\).
Hypersphere product code Stub.
Kitaev surface code A family of abelian topological CSS stabilizer codes whose generators are few-body \(X\)-type and \(Z\)-type Pauli strings associated to the stars and plaquettes, respectively, of a cellulation of a two-dimensional surface (with a qubit located at each edge of the cellulation). Toric code often either refers to the construction on the two-dimensional torus or is an alternative name for the general construction. The construction on surfaces with boundaries is often called the planar code [9].
Lifted-product (LP) code Also called a Panteleev-Kalachev (PK) code. Code that utilizes the notion of a lifted product in its construction. Lifted products of certain classical Tanner codes are the first (asymptotically) good QLDPC codes.
Matching code Stub.
Modular-qudit surface code A family of stabilizer codes whose generators are few-body \(X\)-type and \(Z\)-type Pauli strings associated to the stars and plaquettes, respectively, of a tessellation of a two-dimensional surface (with a qudit located at each edge of the tesselation). The code has \( n=E \) many physical qudits, where \( E \) is the number of edges of the tesselation, and \( k=2g \) many logical qudits, where \( g \) is the genus of the surface.
Projective-plane surface code A family of Kitaev surface codes on the non-orientable 2-dimensional compact manifold \(\mathbb{R}P^2\) (in contrast to a genus-\(g\) surface). Whereas genus-\(g\) surface codes require \(2g\) logical qubits, qubit codes on \(\mathbb{R}P^2\) are made from a single logical qubit.
Quantum Tanner code Stub.
Quantum check-product code Stub.
Quantum expander code CSS codes constructed from a hypergraph product of bipartite expander graphs with bounded left and right vertex degrees. For every bipartite graph there is an associated matrix (the parity check matrix) with columns indexed by the left vertices, rows indexed by the right vertices, and 1 entries whenever a left and right vertex are connected. This matrix can serve as the parity check matrix of a classical code. Two bipartite expander graphs can be used to construct a quantum CSS code (the quantum expander code) by using the parity check matrix of one as \(X\) checks, and the parity check matrix of the other as \(Z\) checks.
Quantum low-density parity-check (QLDPC) code Family of \([[n,k,d]]\) stabilizer codes for which the number of sites (either qubit or qudit) participating in each stabilizer generator and the number of stabilizer generators that each site participates in are both bounded by a constant as \(n\to\infty\). A geometrically local stabilizer code is a QLDPC code where the sites involved in any syndrome bit are contained in a fixed volume that does not scale with \(n\). As opposed to general stabilizer codes, syndrome extraction of the constant-weight check operators of a QLDPC codes can be done using a constant-depth circuit.
Quantum parity code (QPC) Also called a generalized Shor code [10]. A \([[m_1 m_2,1,\min(m_1,m_2)]]\) CSS code family obtained from concatenating an \(m_1\)-qubit phase-flip repetition code with an \(m_2\)-qubit bit-flip repetition code. Logical codewords are \begin{align} \begin{split} |\overline{0}\rangle&=\frac{1}{2^{m_2/2}}\left(|0\rangle^{\otimes m_1}+|1\rangle^{\otimes m_1}\right)^{\otimes m_2}\\ |\overline{1}\rangle&=\frac{1}{2^{m_2/2}}\left(|0\rangle^{\otimes m_1}-|1\rangle^{\otimes m_1}\right)^{\otimes m_2}~. \end{split} \end{align}
Quantum repetition code Encodes \(1\) qubit into \(n\) qubits according to \(|0\rangle\to|\phi_0\rangle^{\otimes n}\) and \(|1\rangle\to|\phi_1\rangle^{\otimes n}\). Also known as a bit-flip code when \(|\phi_i\rangle = |i\rangle\), and a phase-flip code when \(|\phi_0\rangle = |+\rangle\) and \(|\phi_1\rangle = |-\rangle\).
Ramanujan-complex product code CSS code constructed from a Ramanujan quantum code and an asymptotically good classical LDPC code using distance balancing. Ramanujan quantum codes are defined using Ramanujan complexes which are simplicial complexes that generalise Ramanujan graphs. Combining the quantum code obtained from a Ramanujan complex and a good classical LDPC code, which can be thought of as coming from a 1-dimensional chain complex, yields a new quantum code that is defined on a 2-dimensional chain complex. This 2-dimensional chain complex is obtained by the co-complex of the product of the 2 co-complexes. The length, dimension and distance of the new quantum code depend on the input codes.
Rotated surface code Also called a checkerboard code. CSS variant of the surface code defined on a square lattice that has been rotated 45 degrees such that qubits are on vertices, and both \(X\)- and \(Z\)-type check operators occupy plaquettes in an alternating checkerboard pattern.
Shor \([[9,1,3]]\) code Nine-qubit CSS code that is the smallest such code to correct a single-qubit error. The logical state is encoded using \begin{align} \begin{split} |\overline{0}\rangle&=\frac{1}{2\sqrt{2}}\left(|000\rangle+|111\rangle\right)^{\otimes3}\\ |\overline{1}\rangle&=\frac{1}{2\sqrt{2}}\left(|000\rangle-|111\rangle\right)^{\otimes3}~. \end{split} \end{align} The code works by concatenating each qubit of a phase-flip with a bit-flip repetition code. Therefore, the code can correct both type of errors simultaneously.
Solid code A variant of Kitaev's surface code on a 3D lattice.
Steane \([[7,1,3]]\) code A \([[7,1,3]]\) CSS code that uses the classical binary \([7,4,3]\) Hamming code for protecting against \(X\) errors and its dual \([7,3,4]\) for \(Z\) errors. The parity-check matrix for the \([7,4,3]\) Hamming code is \begin{align} H = \left(\begin{matrix} 1&0&0&1&0&1&1\\ 0&1&0&1&1&0&1\\ 0&0&1&0&1&1&1 \end{matrix}\right), \end{align} and the check matrix for the Steane code is therefore \begin{align} \left(\begin{matrix} 0&H\\ H&0 \end{matrix}\right). \end{align} The stabilizer group for the Steane code has six generators.
Surface-17 code A \([[9,1,3]]\) rotated surface code named for the sum of its 9 data qubits and 8 syndrome qubits. It uses the smallest number of qubits to perform error correction on a surface code with parallel syndrome extraction.
Tensored-Ramanujan-complex product code Code constructed in a similar way as the Ramanujan-complex product code, but whose construction utilizes tensor products of Ramanujan complexes in order to improve code distance from \(\sqrt{n}\log n\) to \(\sqrt{n}\text{polylog}(n)\). The utility of such tensor products comes from the fact that one of the Ramanujan complexes is a collective cosystolic expander as opposed to just a cosystolic expander.
Translationally-invariant stabilizer code A geometrically local qubit or qudit stabilizer code with qudits organized on a lattice modeled by the additive group \(\mathbb{Z}^D\) for spatial dimension \(D\) such that each lattice point, referred to as a site, contains \(m\) qudits of dimension \(q\). The stabilizer group of the translationally invariant code is generated by site-local Pauli operators and their translations.
Transverse-field Ising model (TFIM) code A 1D translationally invariant stabilizer code whose encoding is a constant-depth circuit of nearest-neighbor gates on alternating even and odd bonds that consist of transverse-field Ising Hamiltonian interactions. The code allows for perfect state transfer of arbitrary distance using local operations and classical communications (LOCC).
Two-dimensional hyperbolic surface code Hyperbolic surface codes based on a tessellation of a closed 2D manifold with a hyperbolic geometry (i.e., non-Euclidean geometry, e.g., saddle surfaces when defined on a 2D plane).
XY surface code Non-CSS derivative of the surface code whose generators are \(XXXX\) and \(YYYY\), obtained by mapping \(Z \to Y\) in the surface code.
XYZ product code A non-CSS QLDPC code constructed from three classical codes. The construction of an XYZ product code is similar to that of a hypergraph product code and related codes. The idea is that rather than taking a product of only two classical codes to produce a CSS code, a third classical code is considered, acting with Pauli-\(Y\) operators.
XYZ\(^2\) hexagonal stabilizer code An instance of the matching code based on the Kitaev honeycomb model. It is described on a hexagonal lattice with \(XYZXYZ\) stabilizers on each hexagonal plaquette. Each vertical pair of qubits has an \(XX\), \(YY\), or \(ZZ\) link stabilizer depending on the orientation of the plaquette stabilizers.
XZZX surface code Non-CSS variant of the rotated surface code whose generators are \(XZXZ\) Pauli strings associated, clock-wise, to the vertices of each face of a two-dimensional lattice (with a qubit located at each vertex of the tessellation).
\([[15,1,3]]\) quantum Reed-Muller code \([[15,1,3]]\) CSS code that is most easily thought of as a tetrahedral 3D color code. This code contains 15 qubits, represented by four vertices, four face centers, six edge centers, and one body center. The tetrahedron is cellulated into four identical polyhedron cells by connecting the body center to all four face centers, where each face center is then connected by three adjacent edge centers. Each colored cell corresponds to a weight-8 \(X\)-check, and each face corresponds to a weight-4 \(Z\)-check. A logical \(Z\) is any weight-3 \(Z\)-string along an edge of the entire tetrahedron. The logical \(X\) is any weight-7 \(X\)-face of the entire tetrahedron.
\([[4,2,2]]\) CSS code Also known as the \(C_4\) code. Four-qubit CSS stabilizer code with generators \(\{XXXX, ZZZZ\} \) and codewords \begin{align} \begin{split} |\overline{00}\rangle = (|0000\rangle + |1111\rangle)/\sqrt{2}~{\phantom{.}}\\ |\overline{01}\rangle = (|0011\rangle + |1100\rangle)/\sqrt{2}~{\phantom{.}}\\ |\overline{10}\rangle = (|0101\rangle + |1010\rangle)/\sqrt{2}~{\phantom{.}}\\ |\overline{11}\rangle = (|0110\rangle + |1001\rangle)/\sqrt{2}~. \end{split} \end{align} This code is the smallest single-qubit error-detecting code. It is also the smallest instance of the toric code, and its various single-qubit subcodes are small planar surface codes.


A. M. Kubica, The Abcs of the Color Code: A Study of Topological Quantum Codes as Toy Models for Fault-tolerant Quantum Computation and Quantum Phases of Matter, California Institute of Technology, 2018. DOI
H. Bombin, “An Introduction to Topological Quantum Codes”. 1311.0277
M. B. Hastings, “Weight Reduction for Quantum Codes”. 1611.03790
Shai Evra, Tali Kaufman, and Gilles Zémor, “Decodable quantum LDPC codes beyond the $\sqrt{n}$ distance barrier using high dimensional expanders”. 2004.07935
M. H. Freedman, “<b>Z</b><sub>2</sub>–Systolic-Freedom”, Proceedings of the Kirbyfest (1999). DOI
E. Fetaya, “Bounding the distance of quantum surface codes”, Journal of Mathematical Physics 53, 062202 (2012). DOI
J. Haah, “Local stabilizer codes in three dimensions without string logical operators”, Physical Review A 83, (2011). DOI; 1101.1962
A. Dua et al., “Sorting topological stabilizer models in three dimensions”, Physical Review B 100, (2019). DOI; 1908.08049
S. B. Bravyi and A. Yu. Kitaev, “Quantum codes on a lattice with boundary”. quant-ph/9811052
Dave Bacon and Andrea Casaccino, “Quantum Error Correcting Subsystem Codes From Two Classical Linear Codes”. quant-ph/0610088