Modified belief propagation decoders for quantum low-density parity-check codes

Quantum low-density parity-check codes can be decoded using a syndrome based $\mathrm{GF}(4)$ belief propagation decoder. However, the performance of this decoder is limited both by unavoidable $4$-cycles in the code's factor graph and the degenerate nature of quantum errors. For the subclass of CSS codes, the number of $4$-cycles can be reduced by breaking an error into an $X$ and $Z$ component and decoding each with an individual $\mathrm{GF}(2)$ based decoder. However, this comes at the expense of ignoring potential correlations between these two error components. We present a number of modified belief propagation decoders that address these issues. We propose a $\mathrm{GF}(2)$ based decoder for CSS codes that reintroduces error correlations by reattempting decoding with adjusted error probabilities. We also propose the use of an augmented decoder, which has previously been suggested for classical binary low-density parity-check codes. This decoder iteratively reattempts decoding on factor graphs that have a subset of their check nodes duplicated. The augmented decoder can be based on a $\mathrm{GF}(4)$ decoder for any code, a $\mathrm{GF}(2)$ decoder for CSS code, or even a supernode decoder for a dual-containing CSS code. For CSS codes, we further propose a $\mathrm{GF}(2)$ based decoder that combines the augmented decoder with error probability adjustment. We demonstrate the performance of these new decoders on a range of different codes, showing that they perform favorably compared to other decoders presented in literature.


I. INTRODUCTION
In the classical setting, low-density parity-check (LDPC) codes are effective at protecting information against noise. LDPC codes are particularly useful as their sparse structure permits the use of an iterative belief propagation decoder that is of relatively low complexity [1,2]. Belief propagation is a message passing algorithm that takes place on a code's factor graph. This is a bipartite graph defined by a parity-check matrix for the code, with each row corresponding to a check node and each column to an error node. Quantum LDPC (QLDPC) codes, which are stabilizer codes with sparse generators, can be used to protect against the effects of a noisy quantum channel. The generators of an n-qubit stabilizer code can be represented as elements of GF(4) n [3,4]. This representation can be used to define a GF(4) paritycheck matrix, which allows for slightly altered GF(4) belief propagation decoding of QLDPC codes [5]. The requirement that all stabilizer generators must commute results in unavoidable 4-cycles in the factor graph associated with the GF(4) parity-check matrix [6], which can be detrimental to decoding performance [7]. Belief propagation performance is also limited by the fact that it attempts to converge to the single most likely error (in a symbol-wise fashion), rather than accounting for the degenerate nature of quantum errors [6]. For the subclass of Calderbank-Shor-Steane (CSS) codes, the number of 4-cycles can be reduced by instead representing generators as elements of GF(2) 2n [4,8]. This allows an error to be broken into an X and Z component, which can then be decoded individually using two GF(2) belief propagation decoders [9]. However, for many channels, including * alex.rigby@utas.edu.au the depolarizing channel, this has the effect of ignoring correlations between the two components [5].
Modified belief propagation based decoders have been proposed that aim to improve QLDPC decoding performance. Several decoders are presented in Ref. [6] that aim to alleviate so-called symmetric degeneracy errors, which occur as a result of symbol-wise decoding in the face of error degeneracy. The best performing of these is the random perturbation decoder, which attempts to break decoding symmetries by iteratively reattempting decoding with randomly modified channel error probabilities. The enhanced feedback (EFB) decoder of Ref. [10] behaves similarly in that it also iteratively reattempts decoding with modified error probabilities. However, unlike the random perturbation decoder, this modification is informed by the decoder's output. The supernode decoder of Ref. [5] is a modification to the standard GF(4) decoder for the subclass of dual-containing CSS codes. For this decoder, pairs of check nodes in the factor graph are combined to form supernodes. This both reduces decoding complexity and lowers the number of 4-cycles in the factor graph, which can lead to improved decoding performance.
The augmented decoder that we investigate has been previously proposed for classical binary LDPC codes in Ref. [11]. Like the random perturbation and EFB decoders, it also iteratively reattempts decoding. Each of these attempts employs a version of the standard factor graph with a randomly selected subset of check nodes duplicated. In the classical case, this simple approach gives performance that compares favorably with other, typically more complicated, decoders presented in literature. In this paper we show that augmented decoders can be applied to QLDPC codes whether the underlying decoder is GF(2), GF(4), or supernode based. For CSS codes we propose the GF(2) based adjusted decoder, which attempts to reintroduce correlations between the X and Z components of an error that are lost when using a standard GF(2) decoder. If one of the two constituent GF(2) decoders fail, then the adjusted decoder reattempts decoding of this component using error probabilities that are modified according to the output of the other constituent decoder (this is a slight generalization of the decoder presented in Ref. [12]). We also present a GF(2) based decoder for CSS codes that combines the augmented and adjusted decoders. We simulate the performance of our decoders on six different codes: two dual-containing CSS codes, two non-dual-containing CSS codes, and two non-CSS codes. We show that for dual-containing CSS codes our augmented GF(4), augmented supernode, and combined decoders all outperform random perturbation and EFB decoders. For the four other codes, we demonstrate that augmented GF (4) and supernode decoders perform similarly to to the random perturbation and EFB decoders.
The paper is organized as follows. Sec. II gives an overview of belief propagation decoding for classical LDPC codes and extends this to the quantum case. Sec. III details the operation of existing modified decoders (random perturbation, EFB, and supernode) and describes the adjusted, augmented, and combined decoders that we propose. Sec. IV presents simulation results for our decoders on six different codes, comparing them to existing decoders. The paper is concluded in Sec. V.

A. Classical codes
A classical channel is the map Φ : A x → A y , where A x is the set of possible inputs and A y is the set of possible outputs. We are concerned with channels where the input and output sets are finite fields with q elements; that is, A x = A y = GF(q). In this case the action of the channel can be expressed as where x ∈ GF(q) is the channel input, y ∈ GF(q) is the channel output, and e ∈ GF(q) is an error (or noise) symbol that occurs with probability P (e). A channel Φ is called symmetric if P (0) = 1 − p and P (e i ) = p/(q − 1) for e i = 0. A code C ⊆ GF(q) n can be used to protect against the noise introduced by the channel. Elements x ∈ C, called codewords, are transmitted as n sequential uses of Φ or, equivalently, as a single use of the combined channel Φ n , which is comprised of n copies of Φ. The action of Φ n on some input x ∈ C is where y ∈ GF(q) n is the channel output and e ∈ GF(q) n is an error "vector". Assuming the error components are independent, the probability of an error e = (e 1 , . . . , e n ) occurring is where P (e i ) is the probability of the error symbol e i occurring on Φ. The weight of a codeword x ∈ C or an error e ∈ GF(q) n is the number of non-zero components it contains. It follows from Eq. (3) that if Φ is symmetric, then the probability of e ∈ GF(q) n occurring depends only on its weight. The distance between two codewords , is the number of components in which they differ. The distance of C is Equivalently, the distance of C is equal to the weight of the lowest weight error that maps one codeword to another.
If a code C ⊆ GF(q) n forms an (additive) group, then it is called additive; if it forms a vector space, then it is called linear (note that there is no distinction between additive and linear codes in the binary case). Suppose a linear code C has a basis B = {b 1 , . . . , b k }. This defines a generator matrix where the basis elements are considered as column vectors. A generator matrix can be defined in the same way for an additive code; however, in this case B is a generating set. For a linear code, the generator matrix defines a bijective encoding operation that maps some d ∈ GF(q) k to a codeword x = G T d ∈ C (d is also considered as a column vector). A linear code can also be defined as the kernel of a GF(q) parity-check matrix H; that is, Note that for a given code, neither the generator or parity-check matrix is unique. If H has m rows, then dim(C) = k ≥ n − m, with equality when H is full rank. If C is linear with dimension k and distance d, then it is called an [n, k] q or [n, k, d] q code (the q is typically omitted for binary codes, where q = 2). For a linear code, this distance is equal to weight of the minimum weight non-zero codeword (as the errors that map one codeword to another are the nontrivial e ∈ C). The rate of a code is given by R = k/n. The dual code of some code C ⊆ GF(q) n with respect to the inner product ·, · : GF(q) n × GF(q) n → GF(q) is C ⊥ is the annihilator of C and is therefore a linear code. If C ⊥ ⊆ C, then C is called dual-containing; if C ⊆ C ⊥ , then C is called self-orthogonal; and if C ⊥ = C, then C is called self-dual. Unless otherwise specified, the dual code is with respect to the Euclidean inner product In this case, if C is linear with generator matrix G, then a necessary and sufficient condition for c ∈ C ⊥ is Gc = 0; that is, a generator matrix for C is a parity-check matrix for C ⊥ . Conversely, if H is a parity-check matrix for C, then it is a generator matrix for C ⊥ . The aim of a decoder is to determine the channel's input given its output. For a linear code C, this decoder can make use of the error syndrome. If C has an m × n parity-check matrix H and the channel output is y, then the syndrome is An optimal decoder returns the most probable error given the syndrome measurement where δ(He = z) = 1 if He = z and 0 otherwise. The channel input can then be estimated asx = y −ê. If e = e (and hencex = x), then decoding is successful; otherwise, a decoding error has occurred. Unfortunately, even in the simple case of a binary code operating on the binary symmetric channel (a symmetric channel with q = 2), this decoding problem can be shown to be NPcomplete [13]. It follows from Eq. (9) that the syndrome resulting from some error e ∈ GF(q) n depends only on which coset of GF(q) n /C it belongs to. Ifê is the most probable error in the coset e + C, then the probability of a decoding failure given the syndrome z = He is P (e =ê|z) = P (e + C) − P (ê) P (e + C) , where P (e + C) is the probability of any error in e + C occurring. Therefore, the probability of a decoding error is high if the error probability distribution over e + C is not sharply peaked (that is, if P (ê) is small). If the channel is symmetric, then this corresponds to e + C containing errors with similar weight toê, which will be the case if C contains low weight codewords. It therefore follows that the distance of C gives some indication of the fraction of transmissions that will not be decoded correctly, which is called call the frame error rate (FER).

B. Factor graphs and belief propagation
The factor graph of a linear code is a bipartite graph G = (V, C, E). The error nodes V = {v 1 , . . . , v n } correspond to the n error components, and the check nodes C = {c 1 , . . . , c m } correspond to the m constraints imposed by the rows of a parity-check matrix H. An edge {c i , v j } ∈ E connects check node c i to error node v j if H ij = 0. For example, the [7,4,3] Hamming code of Ref. [14] can be defined by the parity-check matrix FIG. 1. The factor graph of the [7,4,3] Hamming code corresponding to the parity-check matrix given in Eq. (12). Error nodes are represented as circles and check nodes as squares.
which gives the factor graph shown in Fig. 1. In general a given code does not have a unique factor graph as the parity-check matrix from which it is defined is not unique. Furthermore, except in the case of a binary code, the mapping from a parity-check matrix to its corresponding factor graph is not one-to-one as an edge only indicates that H ij = 0, it does not give the value of H ij (although this information can be included by decorating the edges). A walk is a sequence whose elements alternate between connected nodes and the edges that connect them. The length of a walk is the number of edges it contains. A path is a walk containing no repeated nodes or edges with the exception that the first and last node can be the same, in which case the path is called a cycle. The bipartite nature of a code's factor graph ensures that the size of all cycles is even and greater than or equal to four. As an example, the walk c 1 , Fig. 1 is a 4-cycle (that is, a cycle of length four). Typically a code's factor graph will not be cycle free (that is, it will not be a tree) as if a code has such a representation, then its distance is bounded by [15] d ≤ n k + 1 + n + 1 k + 1 .
The factor graph representation of a linear code serves as the foundation for a belief propagation decoder. Instead of determining the most likely error as given in Eq. (10) a belief propagation decoder approximates it in a symbol-wise fashion. This gives an estimatê e = (ê 1 , . . . ,ê n ) wherê e j = argmax ej ∈GF(q) P (e j |z).
An expression for P (e j |z) can be obtained by marginalizing P (e|z). Assuming that the error components are independent P (e|z) ∝ n l=1 P (e l )δ(He = z) Fixing e j = a and summing over all other components gives (16) Belief propagation efficiently approximates these marginals by passing messages on the code's factor graph. For a code over GF(q), these messages will be vectors of length q. Initially, a message is sent from every error node v j to the check nodes in the neighborhood Note that this message simply gives the channel error probabilities. Every check node c i then sends a message back to the error nodes in the neighborhood M(c i ) = {v j ∈ V : {c i , v j } ∈ E}. In particular, the message sent to error node v j ∈ M(c i ) is λ i→j with where, through slight abuse of notation, M(i) = {j ∈ {1, . . . , n} : v j ∈ M(c i )} and K is a normalization factor chosen such that a λ a i→j = 1. An estimate of the marginal probability P (e j |z) can then be made witĥ where N (j) = {i ∈ {1, . . . , m} : c i ∈ N (v j )} and K is a normalization factor. From thisê can be estimated in a symbol-wise fashion as in Eq. (14). Ifẑ = Hê = z, then decoding is complete; otherwise, another message is sent from each error node to its connected check nodes. The elements of this message are where K is again a normalization factor. There is then another round of check to error node messages as in Eq. (18), followed by an approximation of marginals as in Eq. (19). This process of sending error to check messages followed by check to error messages and a computation of marginals proceeds iteratively until eitherẑ = z or a maximum number of iterations I max is reached. The most computationally complex component of belief propagation is the check to error node message calculation of Eq. (18). However, it can be performed efficiently using a Fourier transform as outlined in Appendix A 1.
There are two types of decoding error exhibited by a belief propagation decoder. The first type is the detected error where decoding ends withẑ = z (and henceê = e). Such errors do not occur when using an optimal decoder and as such are fundamentally a failing of the belief propagation decoder itself. The second type of error is the undetected error where decoding ends withẑ = z but e = e. These are the same type of error exhibited by the optimal decoder and as such can be attributed to a failing of the code. It therefore follows that for a symmetric channel using a code with a lower distance will tend to result in a higher rate of undetected errors.
Belief propagation decoding is an approximation on two levels. Firstly, it assumes that the most likely error is equal to the symbol-wise most likely error. Secondly, the estimate of the symbol-wise most likely error is based on the approximate marginal probabilitiesP (e j |z) that are only exact when the code's factor graph is a tree [16], which as previously outlined is unlikely. However, good decoding performance can still be achieved when the factor graph is sparsely connected [16]. Linear codes with such a representation are called low-density parity-check (LDPC) codes (most codes do not have such a representation [16,17]). Decoding performance is further improved when the factor graph contains few short cycles [7].

C. Stabilizer codes
The action of a quantum channel Φ on a quantum state described by the density operator ρ is where the A k , called Kraus operators, satisfy k A † k A k = I (the identity operator) [18]. In this paper we are interested in qubit systems; that is, systems where states |φ belong to a two dimensional Hilbert space H ∼ = C 2 . Furthermore, we are concerned with Pauli channels. These are channels of the form where in the computational {|0 , |1 } basis The action of this channel can be interpreted as mapping a pure state |φ to E|φ where the error E is I with probability p I , X with probability p X , Y with probability p Y , or Z with probability p Z [19]. X can be viewed as a bit flip operator as X|0 = |1 and X|1 = |0 . Z can be viewed as a phase flip as Z|0 = |0 and Z|1 = −|1 . Y = iXZ can be viewed as a combined bit and phase flip. Of particular interest is the depolarizing channel where p I = 1 − p and p X = p Y = p Z = p/3. We are also interested in the XZ channel for which the X and Z components of an error E ∝ X u Z v , where u, v ∈ GF(2), occur independently with equal probability q. It follows from the independence of the error components that p X = p Z = q(1 − q) and p Y = q 2 . These values can be expressed in terms of the total error probability The Pauli matrices are Hermitian, unitary, and anticommute with each other. Furthermore, they form a group called the Pauli group P 1 = {±I, ±iI, ±X, ±iX, ±Y, ±iY, ±Z, ±iZ}= X, Y, Z .
(24) The n-qubit Pauli group P n is defined as all n-fold tensor product combinations of elements of P 1 . For example, P 8 contains the element I ⊗ I ⊗ X ⊗ I ⊗ Y ⊗ Z ⊗ I ⊗ I, which is often written more compactly as IIXIY ZII or X 3 Y 5 Z 6 . The weight of some g ∈ P n is the number of elements in the tensor product that are not equal to the identity up to phase. The commutation relations of the Pauli matrices mean that elements of P n must either commute or anticommute, with two elements anticommuting if their non-identity components differ in an odd number of places.
Similar to the classical case, the noise introduced by a quantum channel can be protected against by employing a code. A quantum (qubit) code is a subspace Q ⊆ (C 2 ) ⊗n . Codewords |φ ∈ Q are transmitted across the combined n-qubit channel Φ ⊗n . If Φ is a Pauli channel, then Φ ⊗n maps codewords |φ to E|φ where E ∈ P n . Assuming the channel acts on each qubit independently, the probability of an error E occurring (up to phase) is where P (E i ) is the probability of the error E i occurring (up to phase) on the single qubit channel Φ. Note that errors are considered up to phase as the resulting state is equivalent up to such a phase factor. A convenient way of handling this is to group errors in P n up to phase with Stabilizer codes are defined by an abelian subgroup S < P n , called the stabilizer, that does not contain −I [4]. The code Q is the space of states that are fixed by every element s i ∈ S; that is, The requirement that −I / ∈ S both means that no s ∈ S can have a phase factor of ±i, and that if s ∈ S, then −s / ∈ S. If S is generated by M = {M 1 , . . . , M m } ⊂ P n , then it is sufficient (and obviously necessary) for Q to be stabilized by every M i . Assuming that the set of generators is minimal, it can be shown that dim(Q) = 2 n−m = 2 k [19]; that is, Q encodes the state of a k-qubit system. If the generators of S are sparse, then Q is called a quantum LDPC (QLDPC) code.
Suppose an error E occurs mapping some codeword |φ ∈ Q to E|φ . A projective measurement of a genera- There are three classes of error that can occur. The first Such errors have no effect on the code and result in the trivial syndrome z = 0 (as the stabilizer is abelian). The second class of errors are thoseẼ ∈ C(S)\S where C(S) is the centralizer ofS inP n , which in this case is actually equal to N (S) (the normalizer ofS inP n ) [4]. These are errors that commute with every stabilizer and therefore also yield z = 0; however, the effect of such errors on the code is non-trivial. The final class of errors are thoseẼ ∈P n \N (S), which yield non-trivial syndromes z = 0 and also act non-trivially on the code. In general, the syndrome resulting from some errorẼ ∈P n depends only on which coset ofP n /N (S) it belongs to, while its effect on the code depends only on which coset ofP n /S it belongs to (note thatS ⊳ N (S) ⊳P n asP n is abelian). This phenomena of distinct errors having an identical effect on a code is called degeneracy and has no classical analog. In the classical case, the distance d of a linear code is equal to the weight of the lowest weight error yielding a trivial syndrome while having a non-trivial effect on the code. This extends to the quantum case, with the distance d of a stabilizer code being the weight of the lowest weight element in N (S)\S [4]. An n-qubit code code (the double brackets differentiate it from a classical code). From a decoding point of view, the syndrome measurement determines which coset ofP n /N (S) an er-rorẼ belongs to. If this coset has the representativẽ g ∈P n , then an ideal decoder determines the cosetÂ in (gN (S))/S thatẼ is most likely to belong to. Importantly,Â does not necessarily contain the individually most likely error ingN (S). IfÂ has the representativẽ E = {Ê, −Ê, iÊ, −iÊ}, then the decoder attempts to correct the channel error by applyingÊ to the channel output. IfẼ ∈Â, thenẼẼ ∈S and as such this process corrects the error; otherwise, ifẼ / ∈Â, then a decoding error has occurred. Similar to the classical case, the probability of a decoding failure given some syndrome measurement z is where P (gN (S)) and P (Â) are the probabilities of an error being ingN (S) orÂ respectively. From this it follows that the probability of a decoding error is high if the probability distribution over (gN (S))/S is not sharply peaked, which will occur if N (S)\S contains high probability errors. For the depolarizing channel this corresponds to N (S)\S containing low weight elements, meaning that the distance d gives some indication of decoder performance.

D. Stabilizer code representations
It is possible to represent elements ofP 1 as elements of GF(2) 2 according to the isomorphism [4,8] (30) This can be extended to elements ofP n according to This can be written more compactly as The product of elements inP n corresponds to addition in GF(2) 2n . Representatives of elements iñ P n commute if the symplectic inner product of the binary representations is zero; otherwise, they anticommute. Note that the symplectic inner product of a = (u|v) ∈ GF(2) 2n and b = (u ′ |v ′ ) ∈ GF(2) 2n is Considering a and b as row vectors, this simplifies to The binary representations of the m generators of some stabilizer S define the rows of an m × 2n binary matrix H. This matrix has the form where H X and H Z are each m × n matrices. Note that while H only defines a stabilizer up to phaseS, the codes defined by different stabilizers corresponding toS will all have the same error correction properties. Considering H as the parity-check matrix of a classical binary code C, Any classical linear code with a parity-check matrix H that satisfies this constraint can be used to define a stabilizer code. Furthermore, if H is sparse, then this stabilizer code is a QLDPC code. Errors can also be considered within the binary framework. Suppose that some error E ∝ X eX Z eZ occurs. This error has the binary representation e = (e T X |e T Z ) T , and the corresponding syndrome is simply z = HP e (where e X , e Z , and e are column vectors for consistency with the classical case).
A subclass of stabilizer codes are the Calderbank-Shor-Steane (CSS) codes [20,21], which have a binary representation of the form The commutation condition of Eq. (35) becomes H ZH T X = 0 (or equivalentlyH XH T Z = 0). Consider-ingH X andH Z as parity-check matrices for classical codes C X and C Z respectively this commutation condition requires that C ⊥ X ⊆ C Z (or equivalently C ⊥ Z ⊆ C X ). IfH Z =H X , then C Z = C X , which gives C ⊥ X ⊆ C X . Such codes are called dual-containing CSS codes.
The GF(4) n representations of the m generators of some stabilizer S define an m × n GF(4) matrix H in For a CSS code this becomes withH X andH Z as defined in Eq. (36). The stabilizer corresponds to the additive group generated by the rows of H. This group can be considered as an additive classical code C over GF (4). The rows of H must be orthogonal with respect to the trace inner product. Therefore, if C ⊥ is the dual code of C with respect to the trace inner product, then C ⊆ C ⊥ . Any such self-orthogonal additive GF(4) code can be used to define a stabilizer code. Errors can also be considered in the GF (4) framework.
An error E with GF(4) representation e (again, taken to be a column vector) will yield a syndrome z = tr(He). Note that while H is a generator matrix for C, we essentially consider it as a parity-check matrix because of the role it plays in syndrome calculation and hence in belief propagation decoding.

E. Belief propagation decoding for stabilizer codes
Belief propagation decoding can be applied to stabilizer codes using the GF(2) and GF(4) representations of the previous section. Such a belief propagation decoder aims to estimate the symbol-wise most likely error (up to phase)Ê =Ê 1 ⊗ · · · ⊗Ê n wherê A GF(4) based belief propagation decoder can be used for any QLDPC code. This decoder attempts to make a symbol-wise estimateê ∈ GF(4) n that maps toÊ according to the isomorphism outlined in Sec. II D. The GF(4) decoder behaves very similarly to the belief propagation decoder presented for classical linear codes in Section II B. The only change is to account for the difference in syndrome calculation. In particular, the check to error node message is modified to This calculation can also be performed efficiently using a Fourier transform as outlined in Appendix A 2. The channel error probabilities used in error to check node messages (Eqs. (17) and (20)) and in marginal calculation (Eq. (19)) are P (e j = 0) = 1 − p, P (e j = 1) = p X , P (e j =ω) = p Y , and P (e j = ω) = p Z . For the subclass of CSS codes it is also possible to use two separate GF(2) based belief propagation decoders. For some error E ∝ X eX Z eZ the corresponding binary error is e = (e T X |e T Z ) T , which yields the syndrome Using z Z andH X an estimateê Z of e Z can be made using a classical binary belief propagation decoder. The same can be done with z X andH Z to make an estimatê e X of e X . The j-th component of e X , denoted e (j) These values are used as the channel error probabilities for the two decoders, which amounts to considering the quantum channel as two binary symmetric channels. Note that for depolarizing channel P (e (j) As in the classical case, belief propagation decoding can result in both detected and undetected errors. If z = z, whereẑ is the syndrome associated with the error estimateÊ, then a detected error has occurred. Again, these detected errors are a failing of the decoder. Ifẑ = z butẼẼ / ∈S, then an undetected error has occurred, which is fundamentally a failing of the code itself. It therefore follows that for the depolarizing channel, using a code with a lower distance will tend to result in a higher rate of undetected errors.
Using belief propagation in the quantum case is an even greater approximation than in the classical case. As outlined in Sec. II C, an optimal decoder for a stabilizer code will determine the most likely coset of errors rather than the single most likely error. By definition, QLDPC codes have many low weight stabilizers, which means there will be a large number of elements of the most likely coset with similar weight and hence similar probability. This spreading of probability increases the chance that the single most likely error will not belong to the most likely coset of errors. Approximating the ideal decoder with one that determines the single most likely error will therefore lead to an increased error rate. Belief propagation goes one step further away from the optimal decoder by estimating the single most likely error in a symbol-wise fashion, which can lead to so-called symmetric degeneracy errors. Such errors are well explained by the example of Ref. [6], which is as follows. Consider a two-qubit stabilizer code with generators M 1 = XX and M 2 = ZZ, and assume that the error E = IX occurs leading to a syndrome z = (0, 1) T . The coset of errors that give this syndrome is {XI, IX, Y Z, ZY } (grouping errors up to phase). As a result, the error probabilities on both qubits are P . This symmetry of error probabilities results in the decoder estimating the same error on each qubit. This is not a symmetry exhibited by any of the errors that yield z and as such even an ideal symbol-wise decoder will yield a detected error.
The requirement that all stabilizer generators must commute also degrades belief propagation performance as it results in 4-cycles. Consider some qubit j, there must be (at least) two stabilizer generators, say M i and M i ′ , that act non-trivially on j with different Pauli matrices. If this is not the case, then there will be a weight one element of N (S)\S, meaning that the code will have distance d = 1 (making it of little to no interest). As M i and M i ′ contain different Pauli matrices in position j, they must also contain different Pauli matrices at some other position j ′ to ensure that they commute with each other. This results in a 4-cycle in the GF(4) factor graph as check nodes c i and c i ′ both connect to error nodes v j and v j ′ . In the case of a CSS code, any 4-cycles resulting from an overlap between one row fromH X and one row from H Z can be removed by decoding with a pair of GF(2) decoders rather than a GF(4) decoder. If it is a dualcontaining CSS code, then there must still be 4-cycles in the GF(2) factor graph as the rows ofH =H X =H Z must overlap in an even number of positions to ensure thatHH T = 0. If the code is non-dual-containing, then it is possible forH X andH Z to have corresponding GF(2) factor graphs with no 4-cycles.
The reduction in 4-cycles, along with the reduced inherent complexity, makes GF(2) decoding attractive for CSS codes. However, treating a Pauli channel as a pair of binary symmetric channels ignores potential correlations between the X and Z components of an error E ∝ X eX Z eZ . These correlations are described by the conditional probabilities P (e (j) P (e (j) P (e (j) .
The X and Z components are uncorrelated if they oc-cur independently, which requires P (e This is equivalent to the requirement that p Y = (p X + p Y )(p Y + p Z ), which is satisfied by the XZ channel but not by the depolarizing channel.

III. MODIFIED DECODERS
A. Existing decoders

Random perturbation
A number of modified decoders have been presented in Ref. [6] to address symmetric degeneracy errors. The best performing of these is the random perturbation decoder, which attempts to break decoding symmetries by randomizing the channel error probabilities. Initially, decoding is attempted using a standard GF(4) decoder. If this results inẑ = z, then decoding is complete. Otherwise, ifẑ = z, then decoding is iteratively reattempted with modified error probabilities until either decoding is successful or a maximum number of attempts N is reached. In each decoding attempt a frustrated check is selected. This is a check node c i such thatẑ i = z i . The channel probabilities of all qubits j ∈ M(i) involved in this check are then perturbed (up to normalization) as follows: Here δ X , δ Y , and δ Z are realizations of a random variable that is uniformly distributed over [0, δ], where δ is called the perturbation strength. The increasing of non-identity error probabilities is motivated by the empirical observation that the decoder is naturally too biased towards the trivial error [6].

Enhanced feedback
The enhanced feedback (EFB) decoder of Ref. [10], which is specifically tailored for the depolarizing channel, behaves somewhat similarly to the random perturbation decoder in that it also iteratively reattempts decoding with modified channel probabilities. Again, decoding is first attempted using a standard GF(4) decoder. If this results inẑ = z, then decoding is complete. If instead z = z, then a frustrated check c i is selected along with an involved qubit j ∈ M(i). If z i = 1 butẑ i = 0, then the estimated errorÊ commutes with the stabilizer generator M i while the error E anticommutes with M i . To address this, the channel probabilities for E j are adjusted such that an anticommuting error is more likely than the commuting trivial error that the decoder is naturally too biased towards. This adjustment is where M (j) i is the j-th component of the generator M i . Conversely, if z i = 0 butẑ i = 1, then the adjustment is Decoding is then reattempted with these adjusted probabilities. If this fails, then a different qubit j ∈ M(i) is selected and the process is repeated. If all qubits involved in check c i have been exhausted and decoding is still unsuccessful, then a different check is selected and the process continues. Again, decoding is halted if a maximum number of attempts N is reached.

Supernodes
The supernode decoder of Ref. [5] is a modification of the GF(4) decoder for dual-containing CSS codes. Decoding is performed on the factor graph corresponding toH =H X =H Z with checks c i and c i+m/2 grouped to form a single supernode. The check node calculation is modified to Here z Z contains the first m/2 values of z and z X contains the last m/2 values; z (i) Z and z (i) X are the i-th values of z Z and z X respectively. Definingz i = ωz (4), the two constraints of Eq. (54) can be combined to give (55) Note that this is of the same form as the classical check to error message given in Eq. (18), and it can therefore be computed using the same Fourier transform approach. The effect of combining nodes into supernodes is twofold. Firstly, it reduces decoding complexity by halving the number of check node calculations. Secondly, it can improve decoder performance as it reduces the number of 4-cycles present in the factor graph. Note that random perturbation and EFB can also be implemented using an underlying supernode decoder rather than a standard GF(4) decoder.

Adjusted
The first decoder we propose is the adjusted decoder for CSS codes. This is a GF(2) based decoder that aims to reintroduce the correlations between X and Z errors that are lost when using a standard GF(2) decoder. Initially, decoding is attempted using a standard GF(2) decoder. If this is successful, then decoding is complete. If both H ZêX =ẑ X = z X and H XêZ =ẑ Z = z Z , then the adjusted decoder also halts. However, if one ofẑ X = z X orẑ Z = z Z , then we reattempt decoding for the incorrect component using channel probabilities that are adjusted according to Eqs. (44) to (47). In particular, ifẑ X = z X butẑ Z = z Z , then the adjustment is Alternatively, ifẑ Z = z Z butẑ X = z X , then the adjustment is We note that the adjusted decoder presented here is similar to the decoder presented for the depolarizing channel in Ref. [12]. The decoder of Ref. [12] first attempts decoding of the X component using standard channel probabilities. If this is successful, then decoding is attempted for the Z components using the modified probabilities of Eq. (56).

Augmented
The second decoder we propose is the augmented decoder, which was first presented in Ref. [11] for classical binary codes. An augmented decoder for QLDPC codes can be based on a GF(4) decoder for any code, a GF(2) decoder for a CSS code, or a supernode decoder for a dual-containing CSS code. The simplest of these cases is when the underlying decoder is a GF(4) decoder. In this case, decoding is initially attempted using a standard GF(4) decoder with a standard GF(4) parity-check matrix H. If this is unsuccessful, then decoding is reattempted using a randomly generated augmented paritycheck matrix H δ is comprised of a subset of rows selected at random from H. The fraction of rows selected is dictated by the augmentation density δ. The syndrome used for decoding is where z is the measured syndrome and z δ contains the syndrome values corresponding to the rows selected to form H δ . Decoding is iteratively reattempted using different augmented matrices until either decoding is successful or a maximum number of attempts N is reached. Note that duplicating rows results in a duplication of the corresponding check nodes in the factor graph. The behavior of a supernode based augmented decoder is very similar. In this case the augmented parity-check matrices are of the form whereH δ consists of the rows selected fromH =H X = H Z . The augmented syndrome is where the values of z Zδ and z Xδ are taken from z Z and z X respectively according to the rows selected for repetition.
In the GF(2) case two augmented decoders are used, one for the X component and one for the Z component. The augmented parity-check matrices used by the X decoder are of the form and the augmented syndrome is The syndrome and augmented parity-check matrices used by the Z decoder are of the same form. In all three cases (GF(2), GF(4), and supernode), decoding with an augmented parity-check matrix H A is equivalent to running a slightly altered belief propagation algorithm using the standard parity-check matrix H. We define the function r such that Decoding with H A is then equivalent to decoding using H with the marginal marginal probability approximation of Eq.
As a result of this equivalence, we can consider one iteration of an augmented decoder to be of the same complexity as one iteration of the underlying decoder. This formulation also gives some insight into the effect of decoding with an augmented parity-check matrix. It can be seen that repeating a check has the effect of increasing its influence in estimating the error. Furthermore, the message µ j→i is now no longer independent of the message λ i→j if c i is duplicated. This amplification and feedback will alter the convergence of the marginal probability estimates. This altered convergence can help the decoder to give a different (and hopefully correct) error estimate.

Combined
The third decoder we propose combines the augmented GF(2) and adjusted decoders for CSS codes. Initially, standard GF(2) decoding is attempted. If this is successful, then decoding is complete. If bothẑ X = z X and z Z = z Z , then we reattempt decoding for the X component using augmented parity-check matrices up to N times. If this is unsuccessful, then we repeat this procedure for the Z component. If we still haveẑ X = z X andẑ Z = z Z , then decoding halts. However, if one of z X = z X orẑ Z = z Z (either from the initial decoding or after attempting decoding with augmented parity-check matrices if required), then we reattempt decoding for the unsatisfied component with adjusted channel error probabilities as outlined in Sec. III B 1. If this is unsuccessful, then decoding for this component will be reattempted with augmented parity-check matrices up to N times using the same adjusted probabilities.

A. Bicycle
The first code we have considered is a [[400, 200]] bicycle code of Ref. [9]. Bicycle codes are dual-containing CSS codes that are constructed by first generating an n/2×n/2 binary circulant matrix A with row weight w/2. A is used to define the n/2 × n matrix H 0 = [ A A T ] from which (n − m)/2 rows are removed to giveH (following the heuristic that column weight should be kept as uniform as possible). TakingH X =H Z =H defines the GF(2) and GF(4) parity-check matrices according to Eqs. (36) and (39) respectively. The associated stabilizer code will have k ≥ n − m, with equality when the parity-check matrix is full rank (this is the case for our code). Removing rows from H 0 corresponds to removing stabilizer generators of weight w. Unless a removed row belongs to the span of the remaining rows, which is unlikely, the removed generator will be in N (S)\S. A bicycle code's distance is therefore upper bounded by w (we have chosen w = 20 for our code).

Depolarizing channel
We first consider the depolarizing channel. Both the augmented and random perturbation decoders have a tunable parameter δ, which controls the augmentation density and perturbation strength respectively. As shown for classical codes in Ref. [11], this δ value can have a significant impact on the performance of an augmented decoder. We observe the same behavior for both augmented and random perturbation decoders in the quantum case as shown in Fig. 2. Here decoders with N = 10 maximum decoding attempts and varying δ have been tested at four different depolarizing probabilities (we use a maximum of I max = 100 iterations per attempt for every decoder in this paper). The vertical axis gives normalized FER, which is the modified decoder's FER divided by the underlying (standard) decoder's FER. Note that each data point in these figures, as well as all other figures presented in this paper, corresponds to at least 100 decoding errors. Based on these results, we have selected values of δ = 0.1 for the augmented GF(2) decoder, δ = 0.15 for the augmented GF(4) and supernode decoders, δ = 100 for the random perturbation GF(4) decoder, and δ = 200 for the random perturbation supernode decoder. Note that the δ value we use for the combined decoder is always the same as the value used for the augmented GF(2) decoder.
We have tested all of the decoders outlined in Sec. III on this code. The random perturbation, EFB, aug-mented, and combined decoders all use N = 100 attempts. The FER performance of these decoders is shown in Fig. 3, and the average number of iterations required by each of them is shown in Fig. 4. It can be seen that the standard supernode decoder outperforms the standard GF(4) decoder, which in turn outperforms the standard GF(2) decoder. Furthermore, the supernode decoder requires fewer iterations on average than the standard GF(4) or GF(2) decoders (the number of iterations used by a GF(2) based decoder is taken to be the number used by one of the two constituent decoders). However, note that comparing the number of iterations used by these different decoders, or indeed modified decoders based on different underlying decoders, is not particularly meaningful as their iterations are of differing complexity. The adjusted decoder can be seen to give a FER similar to the standard supernode decoder at the cost of a negligible increase in required iterations compared to the standard GF(2) decoder. This FER performance suggests that the adjusted decoder is successful in reintroducing the correlation between the X and Z error components. The random perturbation and EFB decoders based on either GF(4) or supernode decoders have similar FER performance and require a near-identical number of iterations on average. The augmented GF(4) and supernode decoders outperform both the random perturbation and EFB decoders while requiring a lower number of iterations on average. The augmented GF(2) decoder does give a reasonable FER reduction compared to the standard GF(2) decoder, but it is outperformed by all modified GF(4) and supernode decoders. However, the combined decoder gives a FER lower than the random perturbation and EFB decoders. Furthermore, it also requires fewer iterations on average than the augmented GF(2) decoder. All of the decoding errors we have observed for this code are detected errors; that is, they are due to a failing of the decoder rather than the code's distance. Fig. 5 shows the effect of the maximum number of decoding attempts on the performance of the augmented, combined, random perturbation, and EFB decoders at a depolarizing probability of p = 0.008. For all decoders, the FER reduction with an increasing maximum number of attempts is approximately linear on a log-log plot. This suggests that we could continue to reduce the FER by increasing the maximum number of attempts beyond N = 100. It can be seen that the augmented and combined decoders only require approximately N = 25 maximum attempts to match the performance of random perturbation and EFB decoders with N = 100.

XZ channel
To isolate the effect of augmentation in the GF(2) case, we have repeated the analysis of the previous section for the XZ channel. As previously noted, the X and Z error components occur independently for this channel, there- fore, there are no correlations to be ignored when using a GF(2) based decoder. As a result, the adjusted and combined decoders will give no performance increase over the standard GF(2) and augmented GF(2) decoders respectively. While we have still employed the random perturbation decoder for comparison on this channel, we have not used the EFB decoder as it is specifically tailored to the depolarizing channel. Again, we first tune the augmentation density and and random perturbation strength using decoders with N = 10 as shown in Fig. 6. It can be seen that the optimal value of δ is essentially independent of the underlying decoder. As such, we have selected a value of δ = 0.15 for all augmented decoders and δ = 100 for both of the random perturbation decoders. Note that these are the same values we have used for the GF(4) based decoders in the depolarizing case.
The FER performance and average required iterations for decoders with N = 100 maximum attempts are shown in Figs. 7 and 8 respectively. It can be seen that the standard GF(2), GF(4), and supernode decoders all exhibit near-identical performance on the XZ channel. That the GF(2) and supernode decoders yield the same FER is unsurprising and is consistent with the similar performance of the adjusted and supernode decoders on the depolarizing channel. The performance of the GF(4) decoder suggests that the 4-cycles involving one row fromH X and one row fromH Z have no effect on decoding performance when the error components are independent. The performance of the augmented and random perturbation decoders is also largely independent of the underlying decoder. Furthermore, the relative performance of the decoders is very similar to that observed for the GF(4) based decoders in the depolarizing case, with the augmented decoders outperforming the random perturbation decoders.
The effect of the maximum number of decoding attempts on decoder performance is shown for p = 0.008 in Fig. 9. Unsurprisingly, the performance of the augmented and random perturbation decoders remains largely independent of the underlying decoder over the range of N values tested. Furthermore, the relative performance is very similar to that exhibited by the GF(4) based decoders in the depolarizing case, with the augmented decoders only requiring approximately N = 25 maximum attempts to match the performance of the random perturbation decoders with N = 100.
We have tested the performance of decoders on the XZ channel for all four CSS codes considered in this paper. However, we omit the results for the other three codes as they all follow the same trend outlined here. That is, the performance of decoders is essentially independent of the underlying decoder, and the relative performance of the augmented and random perturbation decoders is very similar to that exhibited by the GF(4) based decoders in the depolarizing case.

B. BIBD
The second code we have considered is a [[610, 490]] balanced incomplete block design (BIBD) code from Ref. [22]. Like the bicycle code, this is also a dual-containing CSS code. A BIBD (X, B), where X = {x 1 , . . . , x v } and B = {B 1 , . . . , B b }, is a collection of b subsets (blocks) of size k that are drawn from a set X containing v elements. Each pair of elements occurs in λ of the blocks, and every element occurs in r blocks. The v × b GF(2) incidence matrix A of (X, B) has elements If λ is even, then A will satisfy AA T = 0 as any two rows will overlap an even number of times. As such, takingH =H X =H Z = A defines a dual-containing CSS code. The BIBD that we have selected follows the construction of Ref. [23]. If 6t + 1 is a prime or prime power and α is a primitive element of GF(6t + 1), then a BIBD (GF(6t+ 1), B) can be constructed with v = 6t+ 1, b = t(6t + 1), r = 4t, k = 4, and λ = 2. To do this, t base blocksB i are constructed for 0 ≤ i ≤ t − 1 with 6t + 1 blocks of the formB i + β = {β, α i + β, α 2t+i + β, α 4t+i + β}, where β ∈ GF(6t + 1), can then be constructed from each base block. This gives a total of t(6t + 1) blocks and a corresponding incidence matrix of the formH Here each A i is a (6t + 1) × (6t + 1) circulant matrix of weight k = 4. We have selected t = 10 and α = 2 for our code.
The results presented for this code and all codes that follow are on the depolarizing channel. The effect of augmentation density and random perturbation strength for decoders with N = 10 on this code is shown in Fig. 10. Based on these results, we have selected values of δ = 0.3 for all augmented decoders, δ = 200 for the random perturbation GF(4) decoder, and δ = 400 for the random perturbation supernode decoder.
The FER performance and average required iterations for decoders with N = 100 maximum attempts are shown in Figs. 11 and 12 respectively. The results here are quite similar to those for the bicycle code. Again, the adjusted decoder gives performance similar to that of the supernode decoder. Furthermore, the random perturbation and EFB decoders perform similarly to one another. The augmented GF(2) decoder is outperformed by all modified GF(4) and supernode decoders. The combined, augmented GF(4), and augmented supernode decoders again outperform the random perturbation and EFB decoders. Overall there is less spread in the performance of the decoders on this BIBD code. This can be attributed to the fact that a large fraction of decoding errors are undetected. For example, approximately 65% of the errors exhibited by the augmented supernode decoder at p = 0.001 are undetected. This abundance of undetected errors suggests that decoding is being limited by the code's distance d ≤ 5 (this value is based on the lowest weight element of N (S)\S that we have observed).
The effect of these undetected errors can also be seen in Fig. 13. For the bicycle code, the reduction in FER with increasing maximum number of iterations was approximately linear on a log-log plot. However, the reduction in FER for the BIBD code can be seen to taper off; that is, increasing the maximum number of attempts has diminishing returns. Partially as a result of this, we only require approximately N = 10 maximum attempts for our augmented supernode decoder to match the performance of the random perturbation and EFB decoders with N = 100.

C. Quasi-cyclic
The third code we have considered is a [[506, 240]] quasi-cyclic code from Ref. [24]. Unlike the first two codes, this is a non-dual-containing CSS code. The parity-check submatricesH X andH Z can be defined in terms of base matrices H X and H Z respectively whose with a P × P identity matrix shifted circularly to the right by an amount given by the replaced element. The base matrix construction of Ref. [24] gives a parity-check matrix that satisfiesH ZH T X = 0; it also ensures that the factor graphs associated withH X andH Z are free of 4-cycles. These base matrices are constructed from a socalled "perfume" (perfect fulfillment). Let Z P be the set of integers {0, 1, . . . , P − 1} with addition, subtraction, and multiplication modulo P . Z * P is then the abelian multiplicative group Z * P = {z ∈ Z P : gcd(z, P ) = 1}. For positive integers P and σ, σ is a fulfillment of P if σ is coprime to P and 1 − σ i is coprime to P for 1 ≤ i < ord(σ).
Here ord(σ) is the order of σ in Z * P . A triple of positive integers (P, σ, τ ) is a perfume if σ is a fulfillment of P , τ is coprime to P , and τ / ∈ {σ, σ 2 , . . . , σ ord(σ) }. Letting L = 2ord(σ), we define and Indexing from zero, these are the elements of the J × L and K × L base matricesH X andH Z respectively where 1 ≤ J, K ≤ L/2. To construct our code, we have used the perfume (23,8,20) (this gives L = 22) and have chosen J = K = 6.
The effect of augmentation density and random perturbation strength for decoders with N = 10 on this code is shown in Fig. 14. Note that for this code we can only use GF(2) and GF(4) based decoders as it is not dual-containing. Based on these results, we have selected values of δ = 0.07 for the augmented GF(2) decoder, δ = 0.05 for the augmented GF(4) decoder, and δ = 50 for the random perturbation GF(4) decoder.
The FER performance and average required iterations for decoders with N = 100 maximum attempts are shown in Figs. 15 and 16 respectively. On the previous two codes the augmented GF(2) decoder gave a similar or lower FER than the adjusted decoder. This is not the case here with the adjusted decoder giving a significantly lower FER. This suggests that the augmented decoder has some effect in alleviating the effect of 4-cycles in the code's factor graph (none of which are present when using a GF(2) decoder for this code). The random perturbation, EFB, and augmented GF(4) decoders all perform similarly on this code. The combined decoder performs worse than the modified GF(4) decoders.
Like the bicycle code, all decoding errors observed for this code were detected errors. This is reflected in Fig.  17, which shows an approximately linear reduction in FER with an increasing number of maximum attempts on a log-log plot for all decoders considered.

D. Bicycle-like
The fourth code we have considered is a [[400, 200]] non-dual-containing CSS based on the bicycle-like construction of Ref. [25]. The codes of Ref. [25] are constructed using a BIBD in a similar way to the code of Sec. IV B.H X is constructed by taking the first a (where a is even) submatrices of the BIBD's adjacency matrix as given in Eq. (69); that is, H Z is then a cyclically shifted version ofH X with (73) The use of a BIBD with λ = 1 ensures thatH X andH Z are both free of 4-cycles. However, we have observed that codes constructed in this way have low distances and are therefore not appropriate for comparing decoders. We have found that this distance can be increased by generalizing the construction to allow the circulant matrices A 1 , . . . , A a to be randomly generated. Note that this comes at the expense of introducing 4-cycles. For our code we have constructedH X from four 100 × 100 circulant matrices of weight five. Each ofH X andH Z yield factor graphs with 1, 700 4-cycles, compared to the 2, 737 4-cycles of the bicycle code considered in Sec. IV A.
The effect of augmentation density and random perturbation strength for decoders with N = 10 on this code is shown in Fig. 18. Based on these results, we have selected values of δ = 0.1 for the augmented GF(2) decoder, δ = 0.15 for the augmented GF(4) decoder, and δ = 100 for the random perturbation GF(4) decoder.
The FER performance and average required iterations for decoders with N = 100 maximum attempts are shown in Figs. 19 and 20 respectively. Again, the adjusted decoder outperforms the augmented GF(2) decoder; however, the gap in their performance is smaller than for the quasi-cyclic code of Sec. IV C. The EFB and augmented GF(4) decoders perform similarly on this code, both outperforming the random perturbation decoder. The combined decoder is again outperformed by all modified GF(4) decoders, although the performance gap is smaller than in the quasi-cyclic case. While our modified construction gives a higher distance than the codes presented in Ref. [25], we still observed a moderate number of undetected errors, which can be attributed to the codes moderatly low distance of d ≤ 10. For example, at p = 0.015 approximately 15% of errors are undetected for both the EFB and augmented GF(4) decoders. However, this is not significant enough fraction of errors to prevent the FER reducing near-linearly on a log-log plot with an increasing maximum number of attempts as shown in Fig. 21.

E. Non-CSS A
The fifth code we have considered is a [[400, 202]] non-CSS code based on construction three of Ref. [26]. The GF(2) and GF(4) parity-check matrices for this code are defined by the matrices H X and H Z as outlined in Eqs. (34) and (39). For this code these matrices are of the form  Here B (i) Z are square matrices of the same size that are either both symmetric or both circulant; P i is a square matrix satisfying P T i = P −1 i . For our code, we have taken a = 2, each B (i) X and B (i) Z to be a 100 × 100 circulant matrix of weight three, and each P i to be a 100 × 100 permutation matrix.
The effect of augmentation density and random perturbation strength for decoders with N = 10 on this code is shown in Fig. 22. Note that for non-CSS codes we can only use GF(4) based decoders. Based on these results, we have chosen δ = 0.1 for the augmented decoder and δ = 25 for the random perturbation decoder.
The FER performance and average required iterations for decoders with N = 100 maximum attempts are shown in Figs. 23 and 24 respectively. It can be seen that the random perturbation, EFB, and augmented decoders all perform similarly on this code.
The majority of decoding errors are detected errors for this code, which also has distance d ≤ 10. At p = 0.012 only 1−2% of errors are undetected for the random perturbation, EFB, and augmented decoders. This is again reflected in the near-linear reduction in FER with increasing maximum number of attempts on the log-log plot given in Fig. 25. spectively. However, the submatrices A   The effect of augmentation density and random perturbation strength for decoders with N = 10 on this code is shown in Fig. 26. Based on these results, we have chosen δ = 0.05 for the augmented decoder and δ = 25 for the random perturbation decoder.
The FER performance and average required iterations for decoders with N = 100 maximum attempts are shown in Figs. 27 and 28 respectively. The results are consistent with those of Sec. IV E, with the random perturbation, EFB, and augmented decoders all performing fairly similarly on this code.
A moderate number of undetected errors were observed for this code, which also has distance d ≤ 10. For example, at p = 0.012 approximately 10 − 15% of errors are undetected for each decoder. It can also be seen that the reduction in FER with an increasing number of maximum attempts, while still near-linear on the log-log plot of Fig. 29, tapers of slightly more than was observed for the code of the previous section.

V. CONCLUSION
We have presented modified belief propagation decoders for QLDPC codes that, depending on the code, either outperform or perform similarly to other decoders presented in literature. We have proposed the GF(2) based adjusted decoder, which uses modified error probabilities to reintroduce correlations between the X and Z components of an error that are lost when using a stan- dard GF(2) decoder. Furthermore, e have demonstrated that the augmented decoder, which has previously been proposed for classical binary LDPC codes, can be applied in the quantum case and that it can be based on an underlying GF(2), GF(4), or supernode decoder. We have also proposed a combination of the augmented GF(2) and adjusted decoders. For the bicycle and BIBD based dualcontaining CSS codes tested, the augmented GF(4), aug- mented supernode, and combined decoders were shown to outperform random perturbation and EFB decoders. For the two non-dual-containing CSS codes and the two non-CSS codes considered, augmented GF(4) and supernode decoders were shown to perform similarly to random perturbation and EFB decoders.