diff --git a/codes/quantum/qubits/stabilizer/qldpc/algebraic/qcga.yml b/codes/quantum/qubits/stabilizer/qldpc/algebraic/qcga.yml index 31eeed1bd..63ad48c71 100644 --- a/codes/quantum/qubits/stabilizer/qldpc/algebraic/qcga.yml +++ b/codes/quantum/qubits/stabilizer/qldpc/algebraic/qcga.yml @@ -32,7 +32,7 @@ features: - 'Syndrome extraction circuit requires seven layers of CNOT gates regardless of code length. BP-OSD decoder \cite{arxiv:1904.02703} has been extended \cite{arxiv:2308.07915} to account for measurement errors (i.e., the circuit-based noise model \cite{arxiv:0803.0272}).' threshold: - - '\(0.8\%\) for circuit-level noise under BP-OSD decoder \cite{arxiv:2308.07915} (cf. \cite{arxiv:0803.0272}).' + - '\(0.8\%\) pseudothreshold for circuit-level noise under BP-OSD decoder \cite{arxiv:2308.07915} (cf. \cite{arxiv:0803.0272}).' # Parent is qubit_css because primary parent needs to be qubit relations: diff --git a/codes/quantum/qubits/stabilizer/qldpc/homological/homological_product.yml b/codes/quantum/qubits/stabilizer/qldpc/homological/homological_product.yml index d03a69f88..fc1f204fb 100644 --- a/codes/quantum/qubits/stabilizer/qldpc/homological/homological_product.yml +++ b/codes/quantum/qubits/stabilizer/qldpc/homological/homological_product.yml @@ -15,22 +15,20 @@ alternative_names: description: | CSS code formulated using the homological product of two chain complexes (see \ref{topic:CSS-to-homology-correspondence}). - Given a classical code with parity-check matrix \(H\), the homological product yields two classical codes \(C_{X,Z}\) with parity-check matrices + Given two classical codes, \(C_i=[n_i,k_i,d_i]\) with \(i\in\{1,2\}\), whose parity-check matrices \(H_i\) satisfy \(H_i^2 = 0\), their homological product yields two classical codes with \(C_{X,Z}\) with parity-check matrices \begin{align} - H_X=\begin{pmatrix}I\otimes H\\ - H\otimes I - \end{pmatrix}\quad\quad\text{and}\quad\quad H_Z=\begin{pmatrix}H\otimes I\\ - I\otimes H - \end{pmatrix}~. + H_X = H_Z^T = H_1 \otimes I + I \otimes H_2~, \end{align} + where \(I\) is the identity. + These two codes then yield a homological product code via the CSS construction. -# In the single-sector homological product code, each base code is associated with the chain complex \( C_a \longrightarrow C_a\longrightarrow C_a\) such that the boundary operator satisfies \(\partial_{a}^{2}=0\). The image \(im\partial\) form the parity check space and any set of basis for this space can be viewed as Z-type stabilizer group generators. The same rule holds for \(im\partial^{T}\), which gives X-type stabilizer generators. Conversely, \(ker\partial\setminus im\partial\) (or \(\partial^{T}\)) correspond to all undetectable errors of Z-type(X-type). Finally, the Z-type logical operators are just elements in the homological group \(ker\partial/im\partial\) and X-type logical operators are just elements in the cohomological group \(ker\partial^{T}/im\partial^{T}\). +# In the single-sector homological product code, each base code is associated with the chain complex \( C_i \longrightarrow C_i\longrightarrow C_i\) such that the boundary operator satisfies \(\partial_{a}^{2}=0\). The image \(im\partial\) form the parity check space and any set of basis for this space can be viewed as Z-type stabilizer group generators. The same rule holds for \(im\partial^{T}\), which gives X-type stabilizer generators. Conversely, \(ker\partial\setminus im\partial\) (or \(\partial^{T}\)) correspond to all undetectable errors of Z-type(X-type). Finally, the Z-type logical operators are just elements in the homological group \(ker\partial/im\partial\) and X-type logical operators are just elements in the cohomological group \(ker\partial^{T}/im\partial^{T}\). #For two chain complexes, the product complex is \( C_1\otimes C_2 \longrightarrow C_1\otimes C_2\longrightarrow C_1\otimes C_2\). The boundary operator is now \(\partial_1\otimes I_2+I_1\otimes \partial_2\). #For simplicity, Ref. \cite{arXiv:1311.0885} used two codes with the same \(n,k\). The boundary operator \(\delta_1\) and \(\delta_2\) are selected from a random ensemble of boundary operators, with uniform probability distribution. To be precise, the boundary operator \(\delta_a\) can be represented by the form \(\delta_a=U_a \delta_0 U_a^{-1}\) where \(U_a\) is a random \(n\times n\) invertible matrix selected from all possible invertible matrices with uniform distribution and \(\delta_0\) is the canonical form \cite{arXiv:1311.0885}. -protection: 'Given two codes \([[n_a, k_a, d_a, w_a]]\) for \(a\in\{1,2\}\), where \(w_a\) denotes the maximum hamming weight of all rows and columns of \(\partial_a\), the homological product code has parameter \([[n=n_1 n_2, k=k_1 k_2, d\leq d_1 d_2, w\leq w_1+w_2]]\). From this formula, and the fact that a randomly selected boundary operator \(\partial\) yields a CSS code that is good with high probability, we see that the product code has \(k=\Theta(n)\) and \(w=O(\sqrt{n})\) with high probability. The main result in \cite{arXiv:1311.0885} is to show that the product code actually has linear distance with high probability as well. To sum up, it is shown that we have a family of \([[n,k=c_1 n, d=c_2 n, w=c_3 \sqrt{n}]]\) codes given small enough \(c_1,c_2,c_3\).' +protection: 'Given two codes \([[n_i, k_i, d_i, w_i]]\) for \(i\in\{1,2\}\), where \(w_i\) denotes the maximum hamming weight of all rows and columns of \(\partial_i\), the homological product code has parameter \([[n=n_1 n_2, k=k_1 k_2, d\leq d_1 d_2, w\leq w_1+w_2]]\). From this formula, and the fact that a randomly selected boundary operator \(\partial\) yields a CSS code that is good with high probability, we see that the product code has \(k=\Theta(n)\) and \(w=O(\sqrt{n})\) with high probability. The main result in \cite{arXiv:1311.0885} is to show that the product code actually has linear distance with high probability as well. To sum up, it is shown that we have a family of \([[n,k=c_1 n, d=c_2 n, w=c_3 \sqrt{n}]]\) codes given small enough \(c_1,c_2,c_3\).' features: general_gates: diff --git a/codes/quantum/qubits/stabilizer/qldpc/homological/hypergraph_product.yml b/codes/quantum/qubits/stabilizer/qldpc/homological/hypergraph_product.yml index 200ad9f54..498ade01c 100644 --- a/codes/quantum/qubits/stabilizer/qldpc/homological/hypergraph_product.yml +++ b/codes/quantum/qubits/stabilizer/qldpc/homological/hypergraph_product.yml @@ -11,7 +11,17 @@ name: 'Hypergraph product (HGP) code' short_name: 'HGP' introduced: '\cite{arXiv:0903.0566,arxiv:1202.0928}' -description: 'A family of \([[n,k,d]]\) CSS codes whose construction is based on two binary linear \textit{seed} codes \(C_1\) and \(C_2\).' +description: | + A family of \([[n,k,d]]\) CSS codes whose construction is based on two binary linear \textit{seed} codes, \(C_i=[n_i,k_i,d_i]\) with \(i\in\{1,2\}\). + Given the two seed parity-check matrices \(H_{1,2}\), the hypergraph product yields two classical codes \(C_{X,Z}\) with parity-check matrices + \begin{align} + H_{X}&=\begin{pmatrix}H_{1}\otimes I_{n_{2}} & \,\,I_{n_{1}-k_{1}}\otimes H_{2}^{T}\end{pmatrix}\\ + H_{Z}&=\begin{pmatrix}I_{n_{1}}\otimes H_{2} & \,\,H_{1}^{T}\otimes I_{n_{2}-k_{2}}\end{pmatrix}~, + \end{align} + where \(I_m\) is the \(m\)-dimensional identity matrix. + These two codes then yield a hypergraph product code via the CSS construction. + + # Could be expanded to include Tanner graphs # Defn of CSS has been changed to accomodate this... In contrast to the original CSS construction there are no restrictions on the form of \(C_1\) and \(C_2\).' diff --git a/codes/quantum/qudits_galois/qldpc/algebraic/2bga.yml b/codes/quantum/qudits_galois/qldpc/algebraic/2bga.yml index 5aaf5b6de..28679b016 100644 --- a/codes/quantum/qudits_galois/qldpc/algebraic/2bga.yml +++ b/codes/quantum/qudits_galois/qldpc/algebraic/2bga.yml @@ -9,7 +9,7 @@ logical: galois name: 'Two-block group-algebra (2BGA) codes' short_name: '2BGA' -introduced: '\cite{arXiv:2306.16400}' +introduced: '\cite{arxiv:2305.06890,arXiv:2306.16400}' description: | 2BGA codes are the smallest \hyperref[code:lifted_product]{LP codes} diff --git a/codes/quantum/qudits_galois/qldpc/algebraic/generalized_bicycle.yml b/codes/quantum/qudits_galois/qldpc/algebraic/generalized_bicycle.yml index 025563ee7..068c3ee89 100644 --- a/codes/quantum/qudits_galois/qldpc/algebraic/generalized_bicycle.yml +++ b/codes/quantum/qudits_galois/qldpc/algebraic/generalized_bicycle.yml @@ -73,7 +73,7 @@ features: rate: | GB codes can achieve an asymptotic rate of 1/4 \cite{arxiv:2203.17216}. For an odd prime \(\ell\), let a prime \(p\) be a quadratic residue modulo \(\ell\), i.e. \(p=m^{2}\text{mod}\ell\) for some integer \(m\). - Then, \(x^{\ell}-1\) has only three irreducible factors in \(\mathbb{F}_q(x)\), and there is a quadratic-residue cyclic code \([\ell,(\ell+1)/2, d]_p\) with \(d\geq\sqrt{\ell}\) and an irreducible generator polynomial CITE BibID: 2487773. + Then, \(x^{\ell}-1\) has only three irreducible factors in \(\mathbb{F}_q(x)\), and there is a quadratic-residue cyclic code \([\ell,(\ell+1)/2, d]_p\) with \(d\geq\sqrt{\ell}\) and an irreducible generator polynomial. Using the GV distance \(d_{GV}\), a prime-field GB code with parameters \([[ 2\ell,(\ell-1)/2,d\geq \ell^{1/2}]]_p\) exists. decoders: - 'BP-OSD decoder \cite{arXiv:1904.02703}.' @@ -100,11 +100,12 @@ relations: The GB code ansatz is convenient for designing quantum LDPC codes. - code_id: single_shot detail: 'A qubit GB code \([[n,k,d]]_2\) has \(k\) non-trivial relations between the syndrome bits, which is expected to help with operation in a fault-tolerant regime (in the presence of syndrome measurement errors). See Ref. \cite{arXiv:2306.16400} for many examples of such codes.' - - code_id: quantum_cyclic - detail: 'Given a canonical generating polynomial \(g(x)\) of a cyclic quantum code \([[n,k,d]]\), its generator matrix is a cyclic matrix \(G=g(P)\). Here \(P\) is the permutation matrix of one-step length-\(n\) cyclic shift.' - code_id: hypergraph_product detail: 'An arbitrary GB code of length \(2\ell\) is equivalent \cite{arxiv:2203.17216} to a rotated quantum hypergraph-product code with periodicity vectors \(\vec{L}_{1}\) and \(\vec{L}_{2}\) such that \(\lvert{\vec{L}_{1}\times\vec{L}_{2}\rvert=\ell}\).' +# - code_id: quantum_cyclic +# detail: 'Given a canonical generating polynomial \(g(x)\) of a cyclic quantum code \([[n,k,d]]\), its generator matrix is a cyclic matrix \(G=g(P)\). Here \(P\) is the permutation matrix of one-step length-\(n\) cyclic shift.' + # Begin Entry Meta Information _meta: diff --git a/codes/quantum/qudits_galois/stabilizer/css/two_block_quantum.yml b/codes/quantum/qudits_galois/stabilizer/css/two_block_quantum.yml index 1cf372399..042e28cda 100644 --- a/codes/quantum/qudits_galois/stabilizer/css/two_block_quantum.yml +++ b/codes/quantum/qudits_galois/stabilizer/css/two_block_quantum.yml @@ -14,7 +14,7 @@ alternative_names: - 'Two-square-block code' description: | - Galois-qudit CSS code whose stabilizer generator matrices \(H_X=(A,B)\) and \(H_Z=(B^T,-A^T)\), are constructed from a pair of square \(\ell \times \ell\) commuting matrices \(A\) and \(B\). + Galois-qudit CSS code whose stabilizer generator matrices \(H_X=(A,B)\) and \(H_Z=(B^T,-A^T)\), are constructed from a pair of square commuting matrices \(A\) and \(B\). protection: | Code parameters are generally unknown, although they can be formally expressed in terms of ranks of some matrices related to \(A\) and \(B\). The corresponding expressions, as well as some upper and lower bounds on parameters are given in \cite{arXiv:2306.16400}.