From f24e9c87c354fbcdae57872bc587b93783dc3575 Mon Sep 17 00:00:00 2001 From: Eric H Date: Fri, 7 Apr 2023 16:56:49 -0400 Subject: [PATCH 1/8] Add rotated surface code svg --- .../rotated-surface-operators.svg | 527 ++++++++++++++++++ 1 file changed, 527 insertions(+) create mode 100644 codes/quantum/qubits/topological/surface/two_dim/rotated_surface/rotated-surface-operators.svg diff --git a/codes/quantum/qubits/topological/surface/two_dim/rotated_surface/rotated-surface-operators.svg b/codes/quantum/qubits/topological/surface/two_dim/rotated_surface/rotated-surface-operators.svg new file mode 100644 index 000000000..22c267209 --- /dev/null +++ b/codes/quantum/qubits/topological/surface/two_dim/rotated_surface/rotated-surface-operators.svg @@ -0,0 +1,527 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + X + + X + + + + Z + Z + + + + + X + X + X + + Z + + Z + + X + + + Z + Z + + + + From 6cb2bad18326bf377231fb55e731ccb0c4d25328 Mon Sep 17 00:00:00 2001 From: Eric H Date: Fri, 7 Apr 2023 16:58:30 -0400 Subject: [PATCH 2/8] Move rotated surface yml to dir --- .../surface/two_dim/{ => rotated_surface}/rotated_surface.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename codes/quantum/qubits/topological/surface/two_dim/{ => rotated_surface}/rotated_surface.yml (100%) diff --git a/codes/quantum/qubits/topological/surface/two_dim/rotated_surface.yml b/codes/quantum/qubits/topological/surface/two_dim/rotated_surface/rotated_surface.yml similarity index 100% rename from codes/quantum/qubits/topological/surface/two_dim/rotated_surface.yml rename to codes/quantum/qubits/topological/surface/two_dim/rotated_surface/rotated_surface.yml From aa74688ef79d285ea94150276b36a2385d47d238 Mon Sep 17 00:00:00 2001 From: Eric H Date: Fri, 7 Apr 2023 17:01:03 -0400 Subject: [PATCH 3/8] Include new figure in yml --- .../two_dim/rotated_surface/rotated_surface.yml | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/codes/quantum/qubits/topological/surface/two_dim/rotated_surface/rotated_surface.yml b/codes/quantum/qubits/topological/surface/two_dim/rotated_surface/rotated_surface.yml index 487b6a5dc..dac5081a5 100644 --- a/codes/quantum/qubits/topological/surface/two_dim/rotated_surface/rotated_surface.yml +++ b/codes/quantum/qubits/topological/surface/two_dim/rotated_surface/rotated_surface.yml @@ -10,7 +10,21 @@ logical: qubits name: 'Rotated surface code' introduced: '\cite{arxiv:quant-ph/0703272,arXiv:1107.3502,arXiv:1202.0928,arXiv:1404.3747}' -description: 'Also called a \textit{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.' +description: | + Also called a \textit{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. + These check operators are shown in \ref{figure:rotated-surface-operators}. + + \begin{figure} + \includegraphics{rotated-surface-operators} + \caption{Stabilizer generators and logical operators of the 2D surface + code on a torus. The star operators \(A_v\) and the plaquette operators + \(B_p\) generate the stabilizer group of the toric code. The logical + operators are strings that wrap around the torus.} + \label{figure:rotated-surface-operators} + \end{figure} protection: 'The \([[L^2,1,L]]\) variant \cite{arXiv:quant-ph/0703272} includes the \([[9,1,3]]\) \hyperref[code:surface-17]{surface-17} code, named as such because 8 ancilla qubits are used for check operator measurements alongside the 9 physical qubits.' From 634a87df3c1c554b8e82875f80cdfd5af0d40f04 Mon Sep 17 00:00:00 2001 From: Eric H Date: Mon, 17 Jul 2023 16:14:53 -0400 Subject: [PATCH 4/8] Added description and svg for rotated_surface --- .../rotated-surface-operators.svg | 0 .../rotated_surface/rotated_surface.yml | 62 +++++++++++++++++++ 2 files changed, 62 insertions(+) rename codes/quantum/qubits/{ => stabilizer}/topological/surface/two_dim/rotated_surface/rotated-surface-operators.svg (100%) create mode 100644 codes/quantum/qubits/stabilizer/topological/surface/two_dim/rotated_surface/rotated_surface.yml diff --git a/codes/quantum/qubits/topological/surface/two_dim/rotated_surface/rotated-surface-operators.svg b/codes/quantum/qubits/stabilizer/topological/surface/two_dim/rotated_surface/rotated-surface-operators.svg similarity index 100% rename from codes/quantum/qubits/topological/surface/two_dim/rotated_surface/rotated-surface-operators.svg rename to codes/quantum/qubits/stabilizer/topological/surface/two_dim/rotated_surface/rotated-surface-operators.svg diff --git a/codes/quantum/qubits/stabilizer/topological/surface/two_dim/rotated_surface/rotated_surface.yml b/codes/quantum/qubits/stabilizer/topological/surface/two_dim/rotated_surface/rotated_surface.yml new file mode 100644 index 000000000..dac5081a5 --- /dev/null +++ b/codes/quantum/qubits/stabilizer/topological/surface/two_dim/rotated_surface/rotated_surface.yml @@ -0,0 +1,62 @@ +####################################################### +## This is a code entry in the error correction zoo. ## +## https://github.com/errorcorrectionzoo ## +####################################################### + +code_id: rotated_surface +physical: qubits +logical: qubits + +name: 'Rotated surface code' +introduced: '\cite{arxiv:quant-ph/0703272,arXiv:1107.3502,arXiv:1202.0928,arXiv:1404.3747}' + +description: | + Also called a \textit{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. + These check operators are shown in \ref{figure:rotated-surface-operators}. + + \begin{figure} + \includegraphics{rotated-surface-operators} + \caption{Stabilizer generators and logical operators of the 2D surface + code on a torus. The star operators \(A_v\) and the plaquette operators + \(B_p\) generate the stabilizer group of the toric code. The logical + operators are strings that wrap around the torus.} + \label{figure:rotated-surface-operators} + \end{figure} + +protection: 'The \([[L^2,1,L]]\) variant \cite{arXiv:quant-ph/0703272} includes the \([[9,1,3]]\) \hyperref[code:surface-17]{surface-17} code, named as such because 8 ancilla qubits are used for check operator measurements alongside the 9 physical qubits.' + +features: + decoders: + - 'Local neural-network using 3D convolutions, combined with a separate global decoder \cite{arxiv:2208.01178}.' + fault_tolerance: + - 'A particular choice of CNOT gates during syndrome extraction is required to be fault-tolerant to syndrome qubit errors \cite{arXiv:quant-ph/0110143,arXiv:1208.0928,arXiv:1404.3747}.' + +relations: + parents: + - code_id: surface + detail: 'Rotated surface codes can be obtained using the same procedure as for the original surface codes but considering slightly different combinatorial surfaces \cite{arXiv:quant-ph/0703272,arXiv:1606.07116} than those considered in the original proposal.' + - code_id: quantum_tanner + detail: 'Specializing the quantum Tanner construction to the surface code yields the rotated surface code \cite{manual:{Nikolas P. Breuckmann, private communication, 2022},manual:{Anthony Leverrier, \href{https://github.com/errorcorrectionzoo/eczoo_data/files/9210173/rotated.pdf}{Mapping the toric code to the rotated toric code}, 2022.}}.' + - code_id: hierarchical + detail: 'Hierarchical code is a concatenation of a constant-rate QLDPC code with a rotated surface code.' + cousins: + - code_id: hypergraph_product + detail: 'Rotated code can be obtained from hypergraph product of two cyclic binary cyclic codes with palindromic generator polynomial (\cite{arxiv:1202.0928}, Ex. 7).' + - code_id: heavy_hex + detail: 'A rotated surface code can be mapped onto a heavy square lattice, resulting in a code similar to the heavy-hexagon code \cite{arxiv:1907.09528}.' + + # - code_id: clifford-deformed_surface + # detail: 'Rotated surface codes can be obtained from surface codes via a constant-depth Clifford circuit.' + + +# Begin Entry Meta Information +_meta: + # Change log - most recent first + changelog: + - user_id: MarcusPS + date: '2023-03-20' + - user_id: VictorVAlbert + date: '2022-07-30' From 1eaa582e38d78aae98f826bb7977a0f1c70eaf9b Mon Sep 17 00:00:00 2001 From: Eric H Date: Mon, 17 Jul 2023 16:27:46 -0400 Subject: [PATCH 5/8] Correct the caption in the figure --- .../two_dim/rotated_surface/rotated_surface.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/codes/quantum/qubits/stabilizer/topological/surface/two_dim/rotated_surface/rotated_surface.yml b/codes/quantum/qubits/stabilizer/topological/surface/two_dim/rotated_surface/rotated_surface.yml index dac5081a5..452082e98 100644 --- a/codes/quantum/qubits/stabilizer/topological/surface/two_dim/rotated_surface/rotated_surface.yml +++ b/codes/quantum/qubits/stabilizer/topological/surface/two_dim/rotated_surface/rotated_surface.yml @@ -19,10 +19,12 @@ description: | \begin{figure} \includegraphics{rotated-surface-operators} - \caption{Stabilizer generators and logical operators of the 2D surface - code on a torus. The star operators \(A_v\) and the plaquette operators - \(B_p\) generate the stabilizer group of the toric code. The logical - operators are strings that wrap around the torus.} + \caption{Stabilizer generators of a 2D rotated surface code with open + boundaries. + The generators are four-body operators on the corners of squares in the + bulk and two-body operators on the boundaries. + Red ones are composed of \(X\) operators while blue ones are composed of + \(Z\) operators.} \label{figure:rotated-surface-operators} \end{figure} From 87ce8f94d1d69841c13f1a75005fd43418df91b9 Mon Sep 17 00:00:00 2001 From: Eric H Date: Mon, 17 Jul 2023 16:31:54 -0400 Subject: [PATCH 6/8] Add name to users_db --- users/users_db.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/users/users_db.yml b/users/users_db.yml index 8e0cc906b..e3a7dba43 100644 --- a/users/users_db.yml +++ b/users/users_db.yml @@ -31,9 +31,13 @@ # # Code Contributors -- leave out 'zooteam:'. +# +- user_id: EricHuang + name: 'Eric Huang' + githubusername: ehua3765 + gscholaruser: HPSt6CsAAAAJ -# - user_id: M10T name: 'Milan Tenn' githubusername: M10T From 7ee01f99a19e8bb8127f52b3086475b2f68b80ab Mon Sep 17 00:00:00 2001 From: Eric H Date: Mon, 17 Jul 2023 16:34:07 -0400 Subject: [PATCH 7/8] Correct very minor typo in analog_stabilizer --- .../oscillators/stabilizer/hyperplane/analog_stabilizer.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codes/quantum/oscillators/stabilizer/hyperplane/analog_stabilizer.yml b/codes/quantum/oscillators/stabilizer/hyperplane/analog_stabilizer.yml index 0ee099c1a..fae0698bc 100644 --- a/codes/quantum/oscillators/stabilizer/hyperplane/analog_stabilizer.yml +++ b/codes/quantum/oscillators/stabilizer/hyperplane/analog_stabilizer.yml @@ -15,7 +15,7 @@ description: | Oscillator-into-oscillator stabilizer code encoding \(k\) logical modes into \(n\) physical modes. An \(((n,k,d))_{\mathbb{R}}\) analog stabilizer code is denoted as \([[n,k,d]]_{\mathbb{R}}\), where \(d\) is the code's distance. Analog stabilizer codes admit continuous stabilizer group of displacements. This group can equivalently be defined in terms of its Lie algebra. The codespace is equivalently the common \(0\)-eigenvalue eigenspace of the Lie algebra generators, which are mutually commuting linear combinations of oscillator position and momentum operators called \textit{nullifiers} \cite{arxiv:0903.3233} or \textit{annihilators}. - An analog stabilizer code admitting a set a set of nullifiers such that each nullifier consists of either position or momentum operators is called an \textit{analog CSS code}. + An analog stabilizer code admitting a set of nullifiers such that each nullifier consists of either position or momentum operators is called an \textit{analog CSS code}. protection: 'Protect against erasures of at most \(d-1\) modes, or arbitrarily large dispalcements on those modes. If an error operator does not commute with a nullifier, then that error is detectable. Protection of logical modes against small displacements cannot be done using only Gaussian resources \cite{arxiv:0811.3128,arxiv:1810.00047} (see also \cite{arxiv:quant-ph/0204052,arxiv:quant-ph/0204085}). There are no such restrictions for non-Gaussian noise \cite{arxiv:0811.3616}.' From b4171f661b975b366cd9596b95e8cd29b4c7b94a Mon Sep 17 00:00:00 2001 From: Eric H Date: Mon, 17 Jul 2023 16:44:44 -0400 Subject: [PATCH 8/8] Include name in changelog --- .../surface/two_dim/rotated_surface/rotated_surface.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/codes/quantum/qubits/stabilizer/topological/surface/two_dim/rotated_surface/rotated_surface.yml b/codes/quantum/qubits/stabilizer/topological/surface/two_dim/rotated_surface/rotated_surface.yml index 452082e98..1766c01af 100644 --- a/codes/quantum/qubits/stabilizer/topological/surface/two_dim/rotated_surface/rotated_surface.yml +++ b/codes/quantum/qubits/stabilizer/topological/surface/two_dim/rotated_surface/rotated_surface.yml @@ -58,6 +58,8 @@ relations: _meta: # Change log - most recent first changelog: + - user_id: EricHuang + date: '2023-07-17' - user_id: MarcusPS date: '2023-03-20' - user_id: VictorVAlbert