errorcorrectionzoo / eczoo_data Goto Github PK
View Code? Open in Web Editor NEWContent of the Error Correction Zoo, stored in structured YAML format
Home Page: https://errorcorrectionzoo.org/
License: Other
Content of the Error Correction Zoo, stored in structured YAML format
Home Page: https://errorcorrectionzoo.org/
License: Other
Various code families will overlap in terms of notation used. As we expand, we may need to consider how to standardize notation for, e.g., codespace projectors, error operators.
I have a [5,1,3] encoder with fewer two-qubit-gates than the referenced papers. How do I add it to the [5,1,3] page? Specifically, how do I add images and external URLs and code blocks?
import stim
print(stim.Circuit("""
# Input: qubit 0
# Output: A [5,1,3] code over qubits 0,1,2,3,4
Y 0
R 1 2 3 4
H 2 3 4
CZ 2 3
CX 0 1 3 1 4 1
CX 2 0
CZ 0 1
CX 3 0
H 2 3 4
""").diagram())
q0: -Y---@-----X-@-X---
| | | |
q1: -R---X-X-X-|-@-|---
| | | |
q2: -R-H-@-|-|-@---|-H-
| | | |
q3: -R-H-@-@-|-----@-H-
|
q4: -R-H-----@-------H-
There are also many highly symmetrical ZX graphs of the encoder (up to permutation and single qubit basis change of the outputs). Examples:
Presumably there are ways to add linkable versions of these things, instead of just references to books and papers? Books and papers are great and all, but it's often difficult to find the specific figure and the representation is usually not computer parseable.
The statement ' All CSS codes admit transversal Pauli and CNOT gates [16]. Self-dual CSS codes admit a transversal Hadamard, completing the Clifford group.' seems wrong. One is still missing the S gate at this point.
A cool feature for the error correction zoo would be the possibility to compare threshold values (as well as other metrics) for different codes, noise models and decoders, using some interactive graphs. To do so in a systematic way, we could add some new structures to the tree. Below is our proposition, but we are very open to discussions :)
We could add three new directories in the root folder: thresholds/
, noise_models/
and decoders/
. In the thresholds
directories, we would have one yaml file per threshold value. For instance, we could have the file surface_code_mwpm_depolarizing.yml
which would contain something like:
threshold_id: surface_code_mwpm_depolarizing
value: 0.38
std: 0.02
noise_model:
noise_id: pauli_error_model
parameters:
- X: 0.33
- Y: 0.33
- Z: 0.33
decoder:
decoder_id: mwpm_decoder
parameters:
- num_neighbors: 42
source: [github]
paper: [arxiv]
description: "[More detailed description on how the data was obtained]"
Then, in the yaml file for a given code, we would have something like:
thresholds:
- surface_code_mwpm_depolarizing
- surface_code_mwpm_independent_noise
- surface_code_bp_osd_depolarizing
- surface_code_bp_osd_independent_noise
We would also have a file decoders/mwpm_decoder.yml
:
decoder_id: mwpm_decoder
parameters:
- num_neighbors:
- type: "int"
- optional: true
description: "The Minimum Weight Perfect Matching Decoder builds a graph out of the syndrome..."
original_paper: [paper link]
example_implementation: [github link]
and a file noise_models/pauli_error_model.yml
:
noise_model_id: pauli_error_model
parameters:
- X:
- type: "float"
- optional: false
- X:
- type: "float"
- optional: false
- Y:
- type: "float"
- optional: false
description: "The Pauli error model is one of the most common type of error model for DV QEC. It consists in the following channel..."
reference: [reference link]
This structure naturally adds noise models and decoders into the zoo (we could have a page that lists them), so it's more general than just a way to describe threshold values. They could in principle easily be added by users. For instance, if IBM wants to add a noise model that is natural to their device, that would be easy to do. Creating some data visualization would also be easy to do using this structure.
What do you think? :)
Look at the list of non code-capacity thresholds:
https://errorcorrectionzoo.org/list/quantum_threshold
Some of those are actually code capacity thresholds, meaning that they stem from error-free decoding and no logical gates. They need to be moved into features.code_capacity_threshold (instead of features.threshold, where they currently are) in the corresponding YML file of each code in the list.
The EC zoo data is set of structured YML files, with each file corresponding to a code family. Inside each file are "parent" links to other codes. Given a particular file (labeled by a particular "code_id"), generate a table (i.e., ancestor family tree) of all of the code's parents, along with their "physical" and "logical" parameters.
Ideally, I'd like to have a script that runs in bash so I can just pull the eczoo_data repo and run the script. The script would take one argument, the code_id corresponding to the code whose ancestors I want to determine. The script should spit out a table, where each row is an ancestor, its physical, and its logical parameters.
Many codes have multiple parents, the generating the list of all parents should probably be done recursively. I don't have strong preferences as to which order the ancestors are presented in the table.
Ctrl+Shift+F (CITE)
Galois-qudit stabilizer codes to be named [[n,k,d]]{GF(q)}
Cyclic-qudit stabilizer codes to be named [[n,k,d]]{q}
Prime-qudit stabilizer codes to be named [[n,k,d]]_{p}
Correspondingly, rename Z_n --> cyclic.
preset:splag
We'd like to edit all YaML code files to include information about their contributors in a new meta field. Currently, this information is stored in the git commits of those files.
The solution is to write a one-time script that crawls through the code files and performs the necessary changes automatically.
Requirements:
eczoo_data
repository:_meta:
contributors:
- name: ...
githubusername: ...
- name: ...
githubusername: ...
The transversal gates section of the 15 qubit code claims that it is the smallest qubit stabilizer code with a transversal gate outside the Clifford group. Maybe this should either read "strongly transversal gate" or "weakly transversal T-gate" since there is an 8 qubit code with weakly transversal CCZ.
I don't know much about gates, so maybe I am misunderstanding
locally_recoverable
quasi_cyclic
stabilizer_over_gfqsq
preparata
stab_5_1_3
stab_15_1_3
repetition
reed_solomon
two_dimensional_hyperbolic_surface
four_dimensional_hyperbolic
levin_wen
Each code in the zoo has a "name", "short_name" and "code_id" parameter in the YML file. However, the description and other parameters where there is lots of text describing a given code may link to other codes via the hyperref protocol (see template.yml). The protocol includes a "name" of the other code and its code ID, but not all code IDs have been put in. The goal is to find every instance of the "name" of a code and replace it with the corresponding hyperref command linking to its code_id.
I was hoping you could write a script that does this for me so that I can re-run it as I populate the zoo later on. The script should
For example, find every instance of "repetition code" inside the descriptive parameters of the text and replace it with \hyperref[code:quantum_repetition]{repetition code}.
Hi,
I was thinking
if one could put the definitions of
Theta(n), Omega(n), carly O(n)
and so on which appears in various places, it would be great. I konw they are somehow differentiated by upper bound, lower bound and so on, but it get's very hard to keep track of, when I'm not familiar with the field enough. Any help on this will be greatly appreciated!
I might be wrong, but can someone confirm that the manual citation seems to require \cite{manual_citation_minilatex: ...}, instead of simply \cite{manual: ...}? Check this line.
Go to https://scirate.com/?range=365
Ctrl+F "code" and check if each paper on error correction is inluded either in the zoo or spreadsheet
If understand the paper, add directly into zoo
If not, add code or code detail into spreadsheet
Is it just me that I found the website compilation failed for the main version.
It would be neat if besides human readable description, there is some more formal (maybe executable) description of the code, e.g. as a parity check matrix.
I am setting up some simulation tools for QEC with QuantumClifford.jl and instead of creating a whole new database of codes in that library, it would be neat if I can just query this database in order to construct a parity check matrix for a given code.
Would that be considered "in scope" for the eczoo project?
Quantum double codes are not stabilizer in general (only in the Abelian case), and so should not be classed as a descendent of stabilizer codes, assuming that A is a child of B iff A is a subset of B. It looks like this issue stems from the claim that group-GKP codes have CSS codes as a parent, then that quantum double codes are a child of group-GKP codes. Group-GKP codes should not have CSS codes as parents, if my assumption about subset-inclusion is correct.
I have not made the change myself as a pull request, as I am unfamiliar with the ECZoo and I may have misunderstood the intended child/parent structure.
http://codetables.de/ has an external links section. Check each links and add it to the appropriate code entry. E.g., Dianelsen's database of self-dual codes should be added into "notes:" field of code_id: dual
The page on Quantum Reed-Muller codes codes/quantum/qubits/rm/quantum_reed_muller.yml
claims that
Additionally, CSS codes formed from binary Reed-Muller codes achieve channel capacity on erasure channels [2].
This cites a result about classical Reed-Muller codes on classical erasure channels. I'm not sure how this could follow in a straightforward way from this paper. It's worth noting that the capacity of the quantum erasure channel isn't even positive for erasure fraction greater than 1/3
There is a slight caveat when using the \cite{arXiv:...} instead of \cite{doi:...}.
I just encountered an interesting case where the arXiv is not able to provide the correct doi:
\cite{arXiv:1604.04062}
will lead to the same citation as \cite{doi:10.26421/QIC16.15-16}
as stated on arxiv.org, which results in:
“[]”, Quantum Information and Computation 16, (2016). DOI
,
while the correct citation should be:
\cite{doi:10.26421/QIC16.15-16-1}
, which gives
B. Criger and B. Terhal, “Noise thresholds for the [4,2,2]-concatenated toric code”, Quantum Information and Computation 16, 1261 (2016). DOI
The DOI is wrong (or not specific enough) on the arXiv website in the first place. So it seems citing using DOI can give a consistently reliable result.
Implement tex command \ket{...} = \left|...\right\rangle
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.