ℹ️ Skipped - page is already crawled
| Filter | Status | Condition | Details |
|---|---|---|---|
| HTTP status | PASS | download_http_code = 200 | HTTP 200 |
| Age cutoff | PASS | download_stamp > now() - 6 MONTH | 1.6 months ago |
| History drop | PASS | isNull(history_drop_reason) | No drop reason |
| Spam/ban | PASS | fh_dont_index != 1 AND ml_spam_score = 0 | ml_spam_score=0 |
| Canonical | PASS | meta_canonical IS NULL OR = '' OR = src_unparsed | Not set |
| Property | Value |
|---|---|
| URL | https://errorcorrectionzoo.org/c/ecc |
| Last Crawled | 2026-02-17 11:57:16 (1 month ago) |
| First Indexed | 2021-11-29 07:06:53 (4 years ago) |
| HTTP Status Code | 200 |
| Meta Title | Error-correcting code (ECC) | Error Correction Zoo |
| Meta Description | Code designed for transmission of classical information through classical channels. |
| Meta Canonical | null |
| Boilerpipe Text | [Jump to code hierarchy]
Root code for the
Classical Domain
Codes for communication over classical channels
Description
Code designed for transmission of classical information through classical channels.
A code is a subset of a set or
alphabet
\(\Sigma\)
, with each element called a
codeword
. An error-correcting code consists of
\(K\)
codewords over an alphabet with
\(N\)
elements such that it is possible to recover the codewords from errors
\(E\)
from some error set
\(\mathcal{E}\)
. The table below lists the most common alphabets, along with names of the corresponding codewords of a block code, i.e., a code on
\(n\)
copies of the alphabet.
alphabet
\(\Sigma\)
codewords
\(\mathbb{Z}_{2}=\mathbb{F}_2\)
bitstrings
\(\mathbb{F}_q\)
\(q\)
-ary strings
\(\mathbb{Z}_{q}\)
\(q\)
-ary strings over
\(\mathbb{Z}_{q}\)
\(\mathbb{R}\)
sphere packings
\(G\)
group elements
\(G/H\)
cosets
Table I
: Table listing the most common alphabets used in ECCs. Here,
\(\mathbb{F}_q\)
is a
finite field
,
\(G\)
is a group, and
\(H\)
is a subgroup of
\(G\)
.
Finite-field alphabet
Finite fields:
The most common and useful
[1]
alphabets used in block codes are Galois or finite fields
\(\mathbb{F}_q\)
, which are sets of
\(q\)
elements closed under addition and multiplication. They are finite analogues of the real or complex numbers, and a unique field exists for every power
\(q=p^m\)
of a prime
\(p\)
. The prime-field case reduces to
\(\mathbb{Z}_p\)
, a group under addition that is promoted to a field by defining multiplication modulo
\(p\)
; the case
\(p=2\)
yields the binary field
\(\mathbb{Z}_2\)
. Every finite field comes with a 0 element (additive identity), a 1 element (multiplicative identity), and additive (multiplicative) inverses for all (nonzero) elements. An element whose powers exhaust all nonzero field elements is called
primitive
. Fields come with a trace operation, the
field trace
, which maps elements
\(\gamma \in \mathbb{F}_q\)
to elements of
\(\mathbb{F}_p\)
as
\begin{align} \text{tr}(\gamma)=\sum_{k=0}^{m-1}\gamma^{p^{k}}~. \tag*{(1)}\end{align}
The field trace can be thought of as an averaging over the field’s Galois group, which is the cyclic group generated by
\(\gamma\to\gamma^p\)
[2; pg. 113]
. Fields also come with a
field norm
,
\begin{align} N(\gamma)=\prod_{k=0}^{m-1}\gamma^{p^{k}}=\gamma^{(p^{m}-1)/(p-1)}~. \tag*{(2)}\end{align}
In the case of the complex numbers, analogues of the field trace and field norm are the real part and norm squared of a complex number, respectively.
Any field
\(\mathbb{F}_{q=p^m}\)
can be thought of as an
\(m\)
-dimensional vector space over
\(\mathbb{F}_p\)
a.k.a. the
\(m\)
th
extension
of
\(\mathbb{F}_p\)
(similar to the complex numbers being an extension of the reals). Conversely,
\(\mathbb{F}_p\)
is an example of a
subfield
of
\(\mathbb{F}_q\)
. Certain field elements are chosen to be the
basis
of
\(\mathbb{F}_q\)
over
\(\mathbb{F}_p\)
, and all other elements are expressed as linear combinations of these basis elements. More generally, elements of fields such as
\(\mathbb{F}_{p^{ml}}\)
can be written as
\(m\)
-dimensional vectors over
\(\mathbb{F}_{p^l}\)
or
\((m\times l)\)
-dimensional matrices over
\(\mathbb{F}_p\)
. This idea is used to convert between ordinary block codes and matrix-based codes such as disk array codes and rank-metric codes. The field norm and field trace can likewise be defined for fields
\(\mathbb{F}_{q^m}\)
that are extensions of
\(\mathbb{F}_q\)
for non-prime
\(q\)
.
An example of a field is the quaternary Galois field
\(\mathbb{F}_4 = \{0,1,\omega, \omega^2=\bar{\omega}\}\)
with
\(p=m=2\)
. In this case,
\(\omega\)
can be interpreted as a third root of unity, but more formally it is defined as a solution to the polynomial equation
\(1+x+x^2=0\)
. Field elements can be represented as two-dimensional vectors with binary elements,
\(\mathbb{F}_4=\mathbb{F}_2^2\)
, using the basis
\(1\cong(1,0)\)
and
\(\omega\cong(0,1)\)
:
\begin{align} 0&\leftrightarrow(0,0)\cong0\cdot1+0\cdot\omega\tag*{(3)}\\1&\leftrightarrow(0,1)\cong0\cdot1+1\cdot\omega\tag*{(4)}\\\omega&\leftrightarrow(1,1)\cong1\cdot1+1\cdot\omega\tag*{(5)}\\\bar{\omega}&\leftrightarrow(1,0)\cong1\cdot1+0\cdot\omega~. \tag*{(6)}\end{align}
In this way, the field elements form the Klein four group
\(\mathbb{Z}_2\times\mathbb{Z}_2\)
under addition. One can check that the trace operation,
\(\text{tr}(\gamma) = \gamma + \gamma^2\)
, outputs either 0 or 1 for any element
\(\gamma\in \mathbb{F}_4\)
.
Rate
The Shannon channel capacity (the maximum of the mutual information over input and output distributions) is the highest rate of information transmission through a classical (i.e., non-quantum) channel with arbitrarily small error rate
[3]
. The fault-tolerant capacity is the capacity for the more general case where the encoding and decoding maps are also assumed to undergo noise
[4]
.
Corrections to the capacity and tradeoff between decoding error, code rate and code length are determined using small
[
5
–
7
]
, moderate
[
8
–
10
]
and large
[
11
–
14
]
deviation analysis. Sometimes the difference from the asymptotic rate at finite block length can be characterized by the
channel dispersion
[
7
,
15
]
. Doublin coefficients
[16]
for classical channels have been studied
[17]
.
Notes
See Ref.
[18]
for a list of open problems in coding theory.
See Refs.
[
19
,
20
]
for reviews of coding theory.
Classical systems such as RAM
[21]
, HPC systems
[
22
–
24
]
, and data centers
[25]
suffer from noise.
Cousins
Two-point homogeneous-space code
— ECCs and
\(t\)
-designs on two-point homogeneous spaces are intimately related via association schemes
[
26
,
27
]
.
\(t\)
-design
— ECCs and
\(t\)
-designs on two-point homogeneous spaces are intimately related via association schemes
[
26
,
27
]
.
Quantum error-correcting code (QECC)
— Quantum information cannot be copied using a linear process
[28]
, so one cannot send several copies of a quantum state through a channel as can be done for classical information. The
Knill-Laflamme conditions
can similarly be formulated for classical codes
[29; Sec. 3]
, although they are not as widely as used as those for quantum codes.
Primary Hierarchy
Parents
Any ECC can be embedded into a quantum Hilbert space, and thus passed through a quantum channel, by associating elements of the alphabet with basis vectors in a Hilbert space over the complex numbers. In other words, classical codewords are elements of an alphabet, while quantum codewords are functions on the alphabet. Classical codes can be unified with quantum codes using various algebraic frameworks
[
30
,
31
]
.
Error-correcting code (ECC)
Children
Not all codes are group-orbit codes, and more generally one can classify codewords into orbits of the automorphism group
[32]
.
References
[1]
N. Levinson, “Coding Theory: A Counterexample to G. H. Hardy’s Conception of Applied Mathematics”, The American Mathematical Monthly
77
, 249 (1970)
DOI
[2]
F. J. MacWilliams and N. J. A. Sloane.
The theory of error correcting codes
. Elsevier, 1977.
[3]
C. E. Shannon, “A Mathematical Theory of Communication”, Bell System Technical Journal
27
, 379 (1948)
DOI
[4]
M. Christandl and A. Müller-Hermes, “Fault-Tolerant Coding for Quantum Communication”, IEEE Transactions on Information Theory
70
, 282 (2024)
arXiv:2009.07161
DOI
[5]
V. Strassen, “Asymptotische Absch¨atzungen in Shannons Informationstheorie,” Trans. Third Prague Conference on Information Theory, Prague, 689–723, (1962)
[6]
M. Hayashi, “Information Spectrum Approach to Second-Order Coding Rate in Channel Coding”, IEEE Transactions on Information Theory
55
, 4947 (2009)
arXiv:0801.2242
DOI
[7]
Y. Polyanskiy, H. V. Poor, and S. Verdu, “Channel Coding Rate in the Finite Blocklength Regime”, IEEE Transactions on Information Theory
56
, 2307 (2010)
DOI
[8]
Y. Altug and A. B. Wagner, “Moderate Deviations in Channel Coding”, (2012)
arXiv:1208.1924
[9]
Y. Polyanskiy and S. Verdu, “Channel dispersion and moderate deviations limits for memoryless channels”, 2010 48th Annual Allerton Conference on Communication, Control, and Computing (Allerton) 1334 (2010)
DOI
[10]
C. T. Chubb, V. Y. F. Tan, and M. Tomamichel, “Moderate Deviation Analysis for Classical Communication over Quantum Channels”, Communications in Mathematical Physics
355
, 1283 (2017)
arXiv:1701.03114
DOI
[11]
R. Gallager,
Information Theory and Reliable Communication
(Springer Vienna, 1972)
DOI
[12]
I. Csiszár and J. Körner,
Information Theory
(Cambridge University Press, 2011)
DOI
[13]
S. Arimoto, “On the converse to the coding theorem for discrete memoryless channels (Corresp.)”, IEEE Transactions on Information Theory
19
, 357 (1973)
DOI
[14]
G. Dueck and J. Korner, “Reliability function of a discrete memoryless channel at rates above capacity (Corresp.)”, IEEE Transactions on Information Theory
25
, 82 (1979)
DOI
[15]
S. H. Hassani, K. Alishahi, and R. L. Urbanke, “Finite-Length Scaling for Polar Codes”, IEEE Transactions on Information Theory
60
, 5875 (2014)
DOI
[16]
Doeblin, W. (1937). Sur les propriétés asymptotiques de mouvement régis par certains types de chaines simples. Bulletin mathématique de la Société roumaine des sciences, 39(1), 57-115.
[17]
A. Makur and J. Singh, “Doeblin Coefficients and Related Measures”, IEEE Transactions on Information Theory
70
, 4667 (2024)
arXiv:2309.08475
DOI
[18]
S. Dougherty, J.-L. Kim, and P. Solé, “Open Problems in Coding Theory”, Contemporary Mathematics 79 (2015)
DOI
[19]
A. R. Calderbank, “The art of signaling: fifty years of coding theory”, IEEE Transactions on Information Theory
44
, 2561 (1998)
DOI
[20]
D. J. Costello and G. D. Forney, “Channel Coding: The Road to Channel Capacity”, (2006)
arXiv:cs/0611112
[21]
B. Schroeder, E. Pinheiro, and W.-D. Weber, “DRAM errors in the wild”, Communications of the ACM
54
, 100 (2011)
DOI
[22]
S. Levy, K. B. Ferreira, N. DeBardeleben, T. Siddiqua, V. Sridharan, and E. Baseman, “Lessons Learned from Memory Errors Observed Over the Lifetime of Cielo”, SC18: International Conference for High Performance Computing, Networking, Storage and Analysis 554 (2018)
DOI
[23]
K. B. Ferreira, S. Levy, J. Hemmert, and K. Pedretti, “Understanding Memory Failures on a Petascale Arm System”, Proceedings of the 31st International Symposium on High-Performance Parallel and Distributed Computing 84 (2022)
DOI
[24]
C. Di Martino, Z. Kalbarczyk, R. K. Iyer, F. Baccanico, J. Fullop, and W. Kramer, “Lessons Learned from the Analysis of System Failures at Petascale: The Case of Blue Waters”, 2014 44th Annual IEEE/IFIP International Conference on Dependable Systems and Networks 610 (2014)
DOI
[25]
J. Meza, Q. Wu, S. Kumar, and O. Mutlu, “Revisiting Memory Errors in Large-Scale Production Data Centers: Analysis and Modeling of New Trends from the Field”, 2015 45th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (2015)
DOI
[26]
P. Delsarte and V. I. Levenshtein, “Association schemes and coding theory”, IEEE Transactions on Information Theory
44
, 2477 (1998)
DOI
[27]
R. A. Bailey,
Association Schemes
(Cambridge University Press, 2004)
DOI
[28]
W. K. Wootters and W. H. Zurek, “A single quantum cannot be cloned”, Nature
299
, 802 (1982)
DOI
[29]
B. Yoshida, “Decoding the Entanglement Structure of Monitored Quantum Circuits”, (2021)
arXiv:2109.08691
[30]
M. K. Patra and S. L. Braunstein, “An algebraic framework for information theory: Classical Information”, (2009)
arXiv:0910.1536
[31]
G. Kuperberg and N. Weaver, “A von Neumann algebra approach to quantum metrics”, (2010)
arXiv:1005.0353
[32]
J. H. Conway and N. J. A. Sloane, “Orbit and coset analysis of the Golay and related codes”, IEEE Transactions on Information Theory
36
, 1038 (1990)
DOI
Page edit log
Victor V. Albert
(2022-11-06) — most recent
Cite as:
“Error-correcting code (ECC)”, The Error Correction Zoo (V. V. Albert & P. Faist, eds.), 2022. https://errorcorrectionzoo.org/c/ecc
BibTeX:
@incollection{eczoo_ecc, title={Error-correcting code (ECC)}, booktitle={The Error Correction Zoo}, year={2022}, editor={Albert, Victor V. and Faist, Philippe}, url={https://errorcorrectionzoo.org/c/ecc} }
Cite as:
“Error-correcting code (ECC)”, The Error Correction Zoo (V. V. Albert & P. Faist, eds.), 2022. https://errorcorrectionzoo.org/c/ecc
Github:
https://github.com/errorcorrectionzoo/eczoo_data/edit/main/codes/classical/ecc.yml
.
Classical-quantum (c-q)
OAQECC
Quantum
Homogeneous-space
Block
Generalized concatenated code (GCC)
Parallel concatenated
Two-point homogeneous-space
\(t\)
-design
QECC
Classical Domain
Quantum Domain
Classical-quantum Domain
Home
Team
About
Code graph
Lists
Concepts glossary
Add new code
Search
🌒
≡ |
| Markdown | [\[Jump to code hierarchy\]](https://errorcorrectionzoo.org/c/ecc#code_hierarchy)
# Error-correcting code (ECC)
Root code for the [Classical Domain](https://errorcorrectionzoo.org/domain/classical_domain)
Codes for communication over classical channels
## Description
Code designed for transmission of classical information through classical channels.
A code is a subset of a set or alphabet \\(\\Sigma\\), with each element called a codeword. An error-correcting code consists of \\(K\\) codewords over an alphabet with \\(N\\) elements such that it is possible to recover the codewords from errors \\(E\\) from some error set \\(\\mathcal{E}\\). The table below lists the most common alphabets, along with names of the corresponding codewords of a block code, i.e., a code on \\(n\\) copies of the alphabet.
| alphabet \\(\\Sigma\\) | codewords |
|---|---|
| \\(\\mathbb{Z}\_{2}=\\mathbb{F}\_2\\) | bitstrings |
| \\(\\mathbb{F}\_q\\) | \\(q\\)\-ary strings |
| \\(\\mathbb{Z}\_{q}\\) | \\(q\\)\-ary strings over \\(\\mathbb{Z}\_{q}\\) |
| \\(\\mathbb{R}\\) | sphere packings |
| \\(G\\) | group elements |
| \\(G/H\\) | cosets |
Table I: Table listing the most common alphabets used in ECCs. Here, \\(\\mathbb{F}\_q\\) is a [finite field](https://errorcorrectionzoo.org/c/ecc#defterm-Finite_20Xfields), \\(G\\) is a group, and \\(H\\) is a subgroup of \\(G\\).
### Finite-field alphabet
Finite fields: The most common and useful [\[1\]](https://errorcorrectionzoo.org/c/ecc#citation-1) alphabets used in block codes are Galois or finite fields \\(\\mathbb{F}\_q\\), which are sets of \\(q\\) elements closed under addition and multiplication. They are finite analogues of the real or complex numbers, and a unique field exists for every power \\(q=p^m\\) of a prime \\(p\\). The prime-field case reduces to \\(\\mathbb{Z}\_p\\), a group under addition that is promoted to a field by defining multiplication modulo \\(p\\); the case \\(p=2\\) yields the binary field \\(\\mathbb{Z}\_2\\). Every finite field comes with a 0 element (additive identity), a 1 element (multiplicative identity), and additive (multiplicative) inverses for all (nonzero) elements. An element whose powers exhaust all nonzero field elements is called primitive. Fields come with a trace operation, the field trace, which maps elements \\(\\gamma \\in \\mathbb{F}\_q\\) to elements of \\(\\mathbb{F}\_p\\) as \\begin{align} \\text{tr}(\\gamma)=\\sum\_{k=0}^{m-1}\\gamma^{p^{k}}~. \\tag\*{(1)}\\end{align} The field trace can be thought of as an averaging over the field’s Galois group, which is the cyclic group generated by \\(\\gamma\\to\\gamma^p\\) [\[2; pg. 113\]](https://errorcorrectionzoo.org/c/ecc#citation-2). Fields also come with a field norm, \\begin{align} N(\\gamma)=\\prod\_{k=0}^{m-1}\\gamma^{p^{k}}=\\gamma^{(p^{m}-1)/(p-1)}~. \\tag\*{(2)}\\end{align} In the case of the complex numbers, analogues of the field trace and field norm are the real part and norm squared of a complex number, respectively.
Any field \\(\\mathbb{F}\_{q=p^m}\\) can be thought of as an \\(m\\)\-dimensional vector space over \\(\\mathbb{F}\_p\\) a.k.a. the \\(m\\)th extension of \\(\\mathbb{F}\_p\\) (similar to the complex numbers being an extension of the reals). Conversely, \\(\\mathbb{F}\_p\\) is an example of a subfield of \\(\\mathbb{F}\_q\\). Certain field elements are chosen to be the basis of \\(\\mathbb{F}\_q\\) over \\(\\mathbb{F}\_p\\), and all other elements are expressed as linear combinations of these basis elements. More generally, elements of fields such as \\(\\mathbb{F}\_{p^{ml}}\\) can be written as \\(m\\)\-dimensional vectors over \\(\\mathbb{F}\_{p^l}\\) or \\((m\\times l)\\)\-dimensional matrices over \\(\\mathbb{F}\_p\\). This idea is used to convert between ordinary block codes and matrix-based codes such as disk array codes and rank-metric codes. The field norm and field trace can likewise be defined for fields \\(\\mathbb{F}\_{q^m}\\) that are extensions of \\(\\mathbb{F}\_q\\) for non-prime \\(q\\).
An example of a field is the quaternary Galois field \\(\\mathbb{F}\_4 = \\{0,1,\\omega, \\omega^2=\\bar{\\omega}\\}\\) with \\(p=m=2\\). In this case, \\(\\omega\\) can be interpreted as a third root of unity, but more formally it is defined as a solution to the polynomial equation \\(1+x+x^2=0\\). Field elements can be represented as two-dimensional vectors with binary elements, \\(\\mathbb{F}\_4=\\mathbb{F}\_2^2\\), using the basis \\(1\\cong(1,0)\\) and \\(\\omega\\cong(0,1)\\): \\begin{align} 0&\\leftrightarrow(0,0)\\cong0\\cdot1+0\\cdot\\omega\\tag\*{(3)}\\\\1&\\leftrightarrow(0,1)\\cong0\\cdot1+1\\cdot\\omega\\tag\*{(4)}\\\\\\omega&\\leftrightarrow(1,1)\\cong1\\cdot1+1\\cdot\\omega\\tag\*{(5)}\\\\\\bar{\\omega}&\\leftrightarrow(1,0)\\cong1\\cdot1+0\\cdot\\omega~. \\tag\*{(6)}\\end{align} In this way, the field elements form the Klein four group \\(\\mathbb{Z}\_2\\times\\mathbb{Z}\_2\\) under addition. One can check that the trace operation, \\(\\text{tr}(\\gamma) = \\gamma + \\gamma^2\\), outputs either 0 or 1 for any element \\(\\gamma\\in \\mathbb{F}\_4\\).
## Rate
The Shannon channel capacity (the maximum of the mutual information over input and output distributions) is the highest rate of information transmission through a classical (i.e., non-quantum) channel with arbitrarily small error rate [\[3\]](https://errorcorrectionzoo.org/c/ecc#citation-3). The fault-tolerant capacity is the capacity for the more general case where the encoding and decoding maps are also assumed to undergo noise [\[4\]](https://errorcorrectionzoo.org/c/ecc#citation-4).
Corrections to the capacity and tradeoff between decoding error, code rate and code length are determined using small \[[5](https://errorcorrectionzoo.org/c/ecc#citation-5)–[7](https://errorcorrectionzoo.org/c/ecc#citation-7)\], moderate \[[8](https://errorcorrectionzoo.org/c/ecc#citation-8)–[10](https://errorcorrectionzoo.org/c/ecc#citation-10)\] and large \[[11](https://errorcorrectionzoo.org/c/ecc#citation-11)–[14](https://errorcorrectionzoo.org/c/ecc#citation-14)\] deviation analysis. Sometimes the difference from the asymptotic rate at finite block length can be characterized by the channel dispersion \[[7](https://errorcorrectionzoo.org/c/ecc#citation-7),[15](https://errorcorrectionzoo.org/c/ecc#citation-15)\]. Doublin coefficients [\[16\]](https://errorcorrectionzoo.org/c/ecc#citation-16) for classical channels have been studied [\[17\]](https://errorcorrectionzoo.org/c/ecc#citation-17).
## Notes
See Ref. [\[18\]](https://errorcorrectionzoo.org/c/ecc#citation-18) for a list of open problems in coding theory.See Refs. \[[19](https://errorcorrectionzoo.org/c/ecc#citation-19),[20](https://errorcorrectionzoo.org/c/ecc#citation-20)\] for reviews of coding theory.Classical systems such as RAM [\[21\]](https://errorcorrectionzoo.org/c/ecc#citation-21), HPC systems \[[22](https://errorcorrectionzoo.org/c/ecc#citation-22)–[24](https://errorcorrectionzoo.org/c/ecc#citation-24)\], and data centers [\[25\]](https://errorcorrectionzoo.org/c/ecc#citation-25) suffer from noise.
## Cousins
- [Two-point homogeneous-space code](https://errorcorrectionzoo.org/c/2pt_homogeneous)— ECCs and \\(t\\)\-designs on two-point homogeneous spaces are intimately related via association schemes \[[26](https://errorcorrectionzoo.org/c/ecc#citation-26),[27](https://errorcorrectionzoo.org/c/ecc#citation-27)\].
- [\\(t\\)\-design](https://errorcorrectionzoo.org/c/t-designs)— ECCs and \\(t\\)\-designs on two-point homogeneous spaces are intimately related via association schemes \[[26](https://errorcorrectionzoo.org/c/ecc#citation-26),[27](https://errorcorrectionzoo.org/c/ecc#citation-27)\].
- [Quantum error-correcting code (QECC)](https://errorcorrectionzoo.org/c/qecc)— Quantum information cannot be copied using a linear process [\[28\]](https://errorcorrectionzoo.org/c/ecc#citation-28), so one cannot send several copies of a quantum state through a channel as can be done for classical information. The [Knill-Laflamme conditions](https://errorcorrectionzoo.org/c/qecc_finite#defterm-Knill-Laflamme_20Xconditions) can similarly be formulated for classical codes [\[29; Sec. 3\]](https://errorcorrectionzoo.org/c/ecc#citation-29), although they are not as widely as used as those for quantum codes.
## Member of code lists
- [Classical codes](https://errorcorrectionzoo.org/list/classical)
- [Classical codes with a rate](https://errorcorrectionzoo.org/list/classical_with_rate)
## Primary Hierarchy
[Classical Domain](https://errorcorrectionzoo.org/domain/classical_domain)
Parents
[Classical-quantum (c-q) code](https://errorcorrectionzoo.org/c/classical_into_quantum)
Any ECC can be embedded into a quantum Hilbert space, and thus passed through a quantum channel, by associating elements of the alphabet with basis vectors in a Hilbert space over the complex numbers. In other words, classical codewords are elements of an alphabet, while quantum codewords are functions on the alphabet. Classical codes can be unified with quantum codes using various algebraic frameworks \[[30](https://errorcorrectionzoo.org/c/ecc#citation-30),[31](https://errorcorrectionzoo.org/c/ecc#citation-31)\].
Error-correcting code (ECC)
Children
[Homogeneous-space code](https://errorcorrectionzoo.org/c/homogeneous_space_classical)[Modulation scheme](https://errorcorrectionzoo.org/c/modulation "Homogeneous-space code → Group-alphabet code → Analog code → Bounded-energy code → Modulation scheme") [Lattice](https://errorcorrectionzoo.org/c/points_into_lattices "Homogeneous-space code → Group-alphabet code → Linear code over \(G\) → Lattice") [Array](https://errorcorrectionzoo.org/c/array "Homogeneous-space code → Group-alphabet code → Matrix-based code → Array code") [MDS array](https://errorcorrectionzoo.org/c/mds_array "Homogeneous-space code → Group-alphabet code → Matrix-based code → Array code → MDS array code") [STC](https://errorcorrectionzoo.org/c/spacetime "Homogeneous-space code → Group-alphabet code → Matrix-based code → Spacetime code (STC)") [MSRD](https://errorcorrectionzoo.org/c/maximum_sum_rank_distance "Homogeneous-space code → Group-alphabet code → Matrix-based code → Sum-rank-metric code → Maximum-sum-rank distance (MSRD) code") [Self-dual additive](https://errorcorrectionzoo.org/c/self_dual_additive "Homogeneous-space code → Group-alphabet code → Linear code over \(G\) → Additive \(q\)-ary code → Dual additive code → Self-dual additive code") [Linear \\(q\\)\-ary](https://errorcorrectionzoo.org/c/q-ary_linear "Homogeneous-space code → Group-alphabet code → Linear code over \(G\) → Additive \(q\)-ary code → Linear \(q\)-ary code") [Evaluation](https://errorcorrectionzoo.org/c/evaluation_varieties "Homogeneous-space code → Group-alphabet code → Linear code over \(G\) → Additive \(q\)-ary code → Linear \(q\)-ary code → Evaluation code") [Self-dual linear](https://errorcorrectionzoo.org/c/self_dual "Homogeneous-space code → Group-alphabet code → Linear code over \(G\) → Additive \(q\)-ary code → Dual additive code → Self-dual additive code → Self-dual linear code") [Cyclic](https://errorcorrectionzoo.org/c/cyclic "Homogeneous-space code → Group-alphabet code → Linear code over \(G\) → Additive \(q\)-ary code → Linear \(q\)-ary code → Quasi group-algebra code → Quasi-cyclic code → Cyclic code") [QR](https://errorcorrectionzoo.org/c/q-ary_quad_residue "Homogeneous-space code → Group-alphabet code → Linear code over \(G\) → Additive \(q\)-ary code → Linear \(q\)-ary code → Quasi group-algebra code → Group-algebra code → Cyclic linear \(q\)-ary code → \(q\)-ary duadic code → Quadratic-residue (QR) code") [Projective geometry](https://errorcorrectionzoo.org/c/projective "Homogeneous-space code → Group-alphabet code → Linear code over \(G\) → Additive \(q\)-ary code → Linear \(q\)-ary code → Projective geometry code") [Quantum-inspired classical block](https://errorcorrectionzoo.org/c/quantum_inspired "Homogeneous-space code → Group-alphabet code → Linear code over \(G\) → Additive \(q\)-ary code → Linear \(q\)-ary code → Quantum-inspired classical block code") [Tanner](https://errorcorrectionzoo.org/c/tanner "Homogeneous-space code → Group-alphabet code → Linear code over \(G\) → Additive \(q\)-ary code → Linear \(q\)-ary code → Tanner code") [\\(q\\)\-ary LDPC](https://errorcorrectionzoo.org/c/q-ary_ldpc "Homogeneous-space code → Group-alphabet code → Linear code over \(G\) → Additive \(q\)-ary code → Linear \(q\)-ary code → Tanner code → \(q\)-ary LDPC code") [Divisible](https://errorcorrectionzoo.org/c/divisible "Homogeneous-space code → Group-alphabet code → Linear code over \(G\) → Additive \(q\)-ary code → Linear \(q\)-ary code → Divisible code") [AG](https://errorcorrectionzoo.org/c/ag "Homogeneous-space code → Group-alphabet code → Matrix-based code → \(q\)-ary code → Algebraic-geometry (AG) code") [OA](https://errorcorrectionzoo.org/c/orthogonal_array "Homogeneous-space code → Group-alphabet code → Matrix-based code → \(q\)-ary code → Orthogonal array (OA)") [Perfect](https://errorcorrectionzoo.org/c/perfect "Homogeneous-space code → Group-alphabet code → Matrix-based code → \(q\)-ary code → Completely regular code → Perfect code") [GRM](https://errorcorrectionzoo.org/c/generalized_reed_muller "Homogeneous-space code → Group-alphabet code → Matrix-based code → \(q\)-ary code → Matrix-product code → Generalized RM (GRM) code") [MRD](https://errorcorrectionzoo.org/c/maximum_rank_distance "Homogeneous-space code → Symmetric-space code → Two-point homogeneous-space code → Rank-metric code → Maximum-rank distance (MRD) code") [Polytope](https://errorcorrectionzoo.org/c/polytope "Homogeneous-space code → Symmetric-space code → Two-point homogeneous-space code → Constant-energy spherical code → Spherical code → Slepian group-orbit code → Polytope code") [Polyhedron](https://errorcorrectionzoo.org/c/polyhedron "Homogeneous-space code → Symmetric-space code → Two-point homogeneous-space code → Constant-energy spherical code → Spherical code → Slepian group-orbit code → Polytope code → Polyhedron code") [Lattice-shell](https://errorcorrectionzoo.org/c/lattice_shell "Homogeneous-space code → Symmetric-space code → Two-point homogeneous-space code → Constant-energy spherical code → Spherical code → Lattice-shell code") [Spherical design](https://errorcorrectionzoo.org/c/spherical_design "Homogeneous-space code → Symmetric-space code → Two-point homogeneous-space code → Constant-energy spherical code → Spherical code → Spherical design") [Balanced](https://errorcorrectionzoo.org/c/balanced "Homogeneous-space code → Symmetric-space code → Constant-weight block code → Balanced code") [Constant-weight](https://errorcorrectionzoo.org/c/constant_weight "Homogeneous-space code → Symmetric-space code → Two-point homogeneous-space code → Constant-weight code") [Combinatorial design](https://errorcorrectionzoo.org/c/combinatorial_design "Homogeneous-space code → Symmetric-space code → Two-point homogeneous-space code → Constant-weight code → Combinatorial design") [Nearly perfect](https://errorcorrectionzoo.org/c/nearly_perfect "Homogeneous-space code → Symmetric-space code → \(q\)-ary code over \(\mathbb{Z}_q\) → Binary code → Nearly perfect code") [Perfect binary](https://errorcorrectionzoo.org/c/perfect_binary "Homogeneous-space code → Group-alphabet code → Matrix-based code → \(q\)-ary code → Orthogonal array (OA) → Perfect binary code") [Linear code over \\(\\mathbb{Z}\_q\\)](https://errorcorrectionzoo.org/c/q-ary_linear_over_zq "Homogeneous-space code → Symmetric-space code → \(q\)-ary code over \(\mathbb{Z}_q\) → Linear code over \(\mathbb{Z}_q\)") [Gray](https://errorcorrectionzoo.org/c/gray "Homogeneous-space code → Symmetric-space code → \(q\)-ary code over \(\mathbb{Z}_q\) → Linear code over \(\mathbb{Z}_q\) → Linear binary code → Gray code") [Universally optimal](https://errorcorrectionzoo.org/c/univ_opt "Homogeneous-space code → Universally optimal code") [Sharp configuration](https://errorcorrectionzoo.org/c/delsarte_optimal "Homogeneous-space code → Universally optimal code → Sharp configuration") [MDS](https://errorcorrectionzoo.org/c/mds "Homogeneous-space code → Universally optimal code → Universally optimal \(q\)-ary code → Maximum distance separable (MDS) code") [GRS](https://errorcorrectionzoo.org/c/generalized_reed_solomon "Homogeneous-space code → Universally optimal code → Universally optimal \(q\)-ary code → Maximum distance separable (MDS) code → Generalized RS (GRS) code")
[Block code](https://errorcorrectionzoo.org/c/block)[Modulation scheme](https://errorcorrectionzoo.org/c/modulation "Block code → Analog code → Bounded-energy code → Modulation scheme") [Polytope](https://errorcorrectionzoo.org/c/polytope "Block code → Analog code → Bounded-energy code → Constant-energy spherical code → Spherical code → Slepian group-orbit code → Polytope code") [Polyhedron](https://errorcorrectionzoo.org/c/polyhedron "Block code → Analog code → Bounded-energy code → Constant-energy spherical code → Spherical code → Slepian group-orbit code → Polytope code → Polyhedron code") [Lattice-shell](https://errorcorrectionzoo.org/c/lattice_shell "Block code → Analog code → Bounded-energy code → Constant-energy spherical code → Spherical code → Lattice-shell code") [Spherical design](https://errorcorrectionzoo.org/c/spherical_design "Block code → Analog code → Bounded-energy code → Constant-energy spherical code → Spherical code → Spherical design") [Lattice](https://errorcorrectionzoo.org/c/points_into_lattices "Block code → Linear code over \(G\) → Lattice") [STC](https://errorcorrectionzoo.org/c/spacetime "Block code → Matrix-based code → Spacetime code (STC)") [FP](https://errorcorrectionzoo.org/c/frameproof "Block code → Frameproof (FP) code") [Distributed-storage](https://errorcorrectionzoo.org/c/distributed_storage "Block code → Distributed-storage code") [Array](https://errorcorrectionzoo.org/c/array "Block code → Matrix-based code → Array code") [MDS array](https://errorcorrectionzoo.org/c/mds_array "Block code → Matrix-based code → Array code → MDS array code") [MSRD](https://errorcorrectionzoo.org/c/maximum_sum_rank_distance "Block code → Matrix-based code → Sum-rank-metric code → Maximum-sum-rank distance (MSRD) code") [MRD](https://errorcorrectionzoo.org/c/maximum_rank_distance "Block code → Matrix-based code → Sum-rank-metric code → Rank-metric code → Maximum-rank distance (MRD) code") [LRC](https://errorcorrectionzoo.org/c/locally_recoverable "Block code → Distributed-storage code → Code with locality → Locally recoverable code (LRC)") [LCC](https://errorcorrectionzoo.org/c/lcc "Block code → Distributed-storage code → Code with locality → Locally recoverable code (LRC) → Locally correctable code (LCC)") [LDC](https://errorcorrectionzoo.org/c/ldc "Block code → Locally decodable code (LDC)") [LTC](https://errorcorrectionzoo.org/c/ltc "Block code → Locally testable code (LTC)") [Editing](https://errorcorrectionzoo.org/c/insertion_deletion "Block code → Editing code") [Small-distance block](https://errorcorrectionzoo.org/c/small_distance "Block code → Small-distance block code") [Skew-cyclic](https://errorcorrectionzoo.org/c/skew_cyclic "Block code → Skew-cyclic code") [Constacyclic](https://errorcorrectionzoo.org/c/constacyclic "Block code → Quasi-twisted code → Constacyclic code") [Self-dual additive](https://errorcorrectionzoo.org/c/self_dual_additive "Block code → Linear code over \(G\) → Additive \(q\)-ary code → Dual additive code → Self-dual additive code") [Linear \\(q\\)\-ary](https://errorcorrectionzoo.org/c/q-ary_linear "Block code → Linear code over \(G\) → Additive \(q\)-ary code → Linear \(q\)-ary code") [Evaluation](https://errorcorrectionzoo.org/c/evaluation_varieties "Block code → Linear code over \(G\) → Additive \(q\)-ary code → Linear \(q\)-ary code → Evaluation code") [Self-dual linear](https://errorcorrectionzoo.org/c/self_dual "Block code → Linear code over \(G\) → Additive \(q\)-ary code → Dual additive code → Self-dual additive code → Self-dual linear code") [Cyclic](https://errorcorrectionzoo.org/c/cyclic "Block code → Skew-cyclic code → Cyclic code") [QR](https://errorcorrectionzoo.org/c/q-ary_quad_residue "Block code → Skew-cyclic code → Cyclic code → Cyclic linear \(q\)-ary code → \(q\)-ary duadic code → Quadratic-residue (QR) code") [Projective geometry](https://errorcorrectionzoo.org/c/projective "Block code → Linear code over \(G\) → Additive \(q\)-ary code → Linear \(q\)-ary code → Projective geometry code") [Quantum-inspired classical block](https://errorcorrectionzoo.org/c/quantum_inspired "Block code → Linear code over \(G\) → Additive \(q\)-ary code → Linear \(q\)-ary code → Quantum-inspired classical block code") [Tanner](https://errorcorrectionzoo.org/c/tanner "Block code → Linear code over \(G\) → Additive \(q\)-ary code → Linear \(q\)-ary code → Tanner code") [\\(q\\)\-ary LDPC](https://errorcorrectionzoo.org/c/q-ary_ldpc "Block code → Distributed-storage code → Code with locality → Locally recoverable code (LRC) → \(q\)-ary LDPC code") [Divisible](https://errorcorrectionzoo.org/c/divisible "Block code → Linear code over \(G\) → Additive \(q\)-ary code → Linear \(q\)-ary code → Divisible code") [Balanced](https://errorcorrectionzoo.org/c/balanced "Block code → Constant-weight block code → Balanced code") [AG](https://errorcorrectionzoo.org/c/ag "Block code → Matrix-based code → \(q\)-ary code → Algebraic-geometry (AG) code") [OA](https://errorcorrectionzoo.org/c/orthogonal_array "Block code → Matrix-based code → \(q\)-ary code → Orthogonal array (OA)") [Perfect](https://errorcorrectionzoo.org/c/perfect "Block code → Matrix-based code → \(q\)-ary code → Completely regular code → Perfect code") [GRM](https://errorcorrectionzoo.org/c/generalized_reed_muller "Block code → Locally decodable code (LDC) → \(q\)-ary linear LCC → Generalized RM (GRM) code") [MDS](https://errorcorrectionzoo.org/c/mds "Block code → Linear code over \(G\) → Additive \(q\)-ary code → Linear \(q\)-ary code → Maximum distance separable (MDS) code") [GRS](https://errorcorrectionzoo.org/c/generalized_reed_solomon "Block code → Distributed-storage code → Generalized RS (GRS) code") [Linear code over \\(\\mathbb{Z}\_q\\)](https://errorcorrectionzoo.org/c/q-ary_linear_over_zq "Block code → Linear code over \(G\) → \(R\)-linear code → Linear code over \(\mathbb{Z}_q\)") [Constant-weight](https://errorcorrectionzoo.org/c/constant_weight "Block code → Constant-weight block code → Constant-weight code") [Combinatorial design](https://errorcorrectionzoo.org/c/combinatorial_design "Block code → Constant-weight block code → Constant-weight code → Combinatorial design") [Gray](https://errorcorrectionzoo.org/c/gray "Block code → Linear code over \(G\) → Additive \(q\)-ary code → Linear \(q\)-ary code → Linear binary code → Gray code") [Nearly perfect](https://errorcorrectionzoo.org/c/nearly_perfect "Block code → Matrix-based code → \(q\)-ary code → Binary code → Nearly perfect code") [Perfect binary](https://errorcorrectionzoo.org/c/perfect_binary "Block code → Matrix-based code → \(q\)-ary code → Orthogonal array (OA) → Perfect binary code")
[Generalized concatenated code (GCC)](https://errorcorrectionzoo.org/c/generalized_concatenated)[Concatenated](https://errorcorrectionzoo.org/c/concatenated "Generalized concatenated code (GCC) → Concatenated code")
[Parallel concatenated code](https://errorcorrectionzoo.org/c/parallel_concatenated)[Tanner](https://errorcorrectionzoo.org/c/tanner "Parallel concatenated code → Tanner code") [\\(q\\)\-ary LDPC](https://errorcorrectionzoo.org/c/q-ary_ldpc "Parallel concatenated code → Tanner code → \(q\)-ary LDPC code")
[Finite-dimensional error-correcting code (ECC)](https://errorcorrectionzoo.org/c/ecc_finite)[Array](https://errorcorrectionzoo.org/c/array "Finite-dimensional error-correcting code (ECC) → Matrix-based code → Array code") [MDS array](https://errorcorrectionzoo.org/c/mds_array "Finite-dimensional error-correcting code (ECC) → Matrix-based code → Array code → MDS array code") [STC](https://errorcorrectionzoo.org/c/spacetime "Finite-dimensional error-correcting code (ECC) → Matrix-based code → Spacetime code (STC)") [MSRD](https://errorcorrectionzoo.org/c/maximum_sum_rank_distance "Finite-dimensional error-correcting code (ECC) → Matrix-based code → Sum-rank-metric code → Maximum-sum-rank distance (MSRD) code") [MRD](https://errorcorrectionzoo.org/c/maximum_rank_distance "Finite-dimensional error-correcting code (ECC) → Matrix-based code → Sum-rank-metric code → Rank-metric code → Maximum-rank distance (MRD) code") [Self-dual additive](https://errorcorrectionzoo.org/c/self_dual_additive "Finite-dimensional error-correcting code (ECC) → Matrix-based code → \(q\)-ary code → Additive \(q\)-ary code → Dual additive code → Self-dual additive code") [AG](https://errorcorrectionzoo.org/c/ag "Finite-dimensional error-correcting code (ECC) → Matrix-based code → \(q\)-ary code → Algebraic-geometry (AG) code") [OA](https://errorcorrectionzoo.org/c/orthogonal_array "Finite-dimensional error-correcting code (ECC) → Matrix-based code → \(q\)-ary code → Orthogonal array (OA)") [Perfect](https://errorcorrectionzoo.org/c/perfect "Finite-dimensional error-correcting code (ECC) → Matrix-based code → \(q\)-ary code → Completely regular code → Perfect code") [Balanced](https://errorcorrectionzoo.org/c/balanced "Finite-dimensional error-correcting code (ECC) → Matrix-based code → \(q\)-ary code → Balanced code") [Constant-weight](https://errorcorrectionzoo.org/c/constant_weight "Finite-dimensional error-correcting code (ECC) → Matrix-based code → \(q\)-ary code → Binary code → Constant-weight code") [Combinatorial design](https://errorcorrectionzoo.org/c/combinatorial_design "Finite-dimensional error-correcting code (ECC) → Matrix-based code → \(q\)-ary code → Binary code → Constant-weight code → Combinatorial design") [Nearly perfect](https://errorcorrectionzoo.org/c/nearly_perfect "Finite-dimensional error-correcting code (ECC) → Matrix-based code → \(q\)-ary code → Binary code → Nearly perfect code") [Perfect binary](https://errorcorrectionzoo.org/c/perfect_binary "Finite-dimensional error-correcting code (ECC) → Matrix-based code → \(q\)-ary code → Orthogonal array (OA) → Perfect binary code") [Linear code over \\(\\mathbb{Z}\_q\\)](https://errorcorrectionzoo.org/c/q-ary_linear_over_zq "Finite-dimensional error-correcting code (ECC) → Ring code → \(q\)-ary code over \(\mathbb{Z}_q\) → Linear code over \(\mathbb{Z}_q\)") [Linear \\(q\\)\-ary](https://errorcorrectionzoo.org/c/q-ary_linear "Finite-dimensional error-correcting code (ECC) → Ring code → \(R\)-linear code → Linear \(q\)-ary code") [MDS](https://errorcorrectionzoo.org/c/mds "Finite-dimensional error-correcting code (ECC) → Matrix-based code → \(q\)-ary code → Orthogonal array (OA) → Maximum distance separable (MDS) code") [Gray](https://errorcorrectionzoo.org/c/gray "Finite-dimensional error-correcting code (ECC) → Ring code → \(q\)-ary code over \(\mathbb{Z}_q\) → Linear code over \(\mathbb{Z}_q\) → Linear binary code → Gray code") [Evaluation](https://errorcorrectionzoo.org/c/evaluation_varieties "Finite-dimensional error-correcting code (ECC) → Ring code → \(R\)-linear code → Linear \(q\)-ary code → Evaluation code") [GRS](https://errorcorrectionzoo.org/c/generalized_reed_solomon "Finite-dimensional error-correcting code (ECC) → Matrix-based code → \(q\)-ary code → Algebraic-geometry (AG) code → Evaluation AG code → Generalized RS (GRS) code") [Cyclic](https://errorcorrectionzoo.org/c/cyclic "Finite-dimensional error-correcting code (ECC) → Ring code → \(R\)-linear code → Linear \(q\)-ary code → Quasi group-algebra code → Quasi-cyclic code → Cyclic code") [GRM](https://errorcorrectionzoo.org/c/generalized_reed_muller "Finite-dimensional error-correcting code (ECC) → Matrix-based code → \(q\)-ary code → Matrix-product code → Generalized RM (GRM) code") [QR](https://errorcorrectionzoo.org/c/q-ary_quad_residue "Finite-dimensional error-correcting code (ECC) → Ring code → \(R\)-linear code → Linear \(q\)-ary code → Quasi group-algebra code → Group-algebra code → Cyclic linear \(q\)-ary code → \(q\)-ary duadic code → Quadratic-residue (QR) code") [Projective geometry](https://errorcorrectionzoo.org/c/projective "Finite-dimensional error-correcting code (ECC) → Ring code → \(R\)-linear code → Linear \(q\)-ary code → Projective geometry code") [Quantum-inspired classical block](https://errorcorrectionzoo.org/c/quantum_inspired "Finite-dimensional error-correcting code (ECC) → Ring code → \(R\)-linear code → Linear \(q\)-ary code → Quantum-inspired classical block code") [Tanner](https://errorcorrectionzoo.org/c/tanner "Finite-dimensional error-correcting code (ECC) → Ring code → \(R\)-linear code → Linear \(q\)-ary code → Tanner code") [\\(q\\)\-ary LDPC](https://errorcorrectionzoo.org/c/q-ary_ldpc "Finite-dimensional error-correcting code (ECC) → Ring code → \(R\)-linear code → Linear \(q\)-ary code → Tanner code → \(q\)-ary LDPC code") [Divisible](https://errorcorrectionzoo.org/c/divisible "Finite-dimensional error-correcting code (ECC) → Ring code → \(R\)-linear code → Linear \(q\)-ary code → Divisible code") [Self-dual linear](https://errorcorrectionzoo.org/c/self_dual "Finite-dimensional error-correcting code (ECC) → Ring code → \(R\)-linear code → Linear \(q\)-ary code → Dual linear code → Self-dual linear code")
[Group-orbit code](https://errorcorrectionzoo.org/c/group_orbit)[Lattice](https://errorcorrectionzoo.org/c/points_into_lattices "Group-orbit code → Linear code over \(G\) → Lattice") [Self-dual additive](https://errorcorrectionzoo.org/c/self_dual_additive "Group-orbit code → Linear code over \(G\) → Additive \(q\)-ary code → Dual additive code → Self-dual additive code") [Linear \\(q\\)\-ary](https://errorcorrectionzoo.org/c/q-ary_linear "Group-orbit code → Linear code over \(G\) → Additive \(q\)-ary code → Linear \(q\)-ary code") [Evaluation](https://errorcorrectionzoo.org/c/evaluation_varieties "Group-orbit code → Linear code over \(G\) → Additive \(q\)-ary code → Linear \(q\)-ary code → Evaluation code") [MDS](https://errorcorrectionzoo.org/c/mds "Group-orbit code → Linear code over \(G\) → Additive \(q\)-ary code → Linear \(q\)-ary code → Maximum distance separable (MDS) code") [GRS](https://errorcorrectionzoo.org/c/generalized_reed_solomon "Group-orbit code → Linear code over \(G\) → Additive \(q\)-ary code → Linear \(q\)-ary code → Maximum distance separable (MDS) code → Generalized RS (GRS) code") [GRM](https://errorcorrectionzoo.org/c/generalized_reed_muller "Group-orbit code → Group-algebra code → Multiplicity code → Generalized RM (GRM) code") [Cyclic](https://errorcorrectionzoo.org/c/cyclic "Group-orbit code → Cyclic code") [QR](https://errorcorrectionzoo.org/c/q-ary_quad_residue "Group-orbit code → Cyclic code → Cyclic linear \(q\)-ary code → \(q\)-ary duadic code → Quadratic-residue (QR) code") [Projective geometry](https://errorcorrectionzoo.org/c/projective "Group-orbit code → Linear code over \(G\) → Additive \(q\)-ary code → Linear \(q\)-ary code → Projective geometry code") [Quantum-inspired classical block](https://errorcorrectionzoo.org/c/quantum_inspired "Group-orbit code → Linear code over \(G\) → Additive \(q\)-ary code → Linear \(q\)-ary code → Quantum-inspired classical block code") [Tanner](https://errorcorrectionzoo.org/c/tanner "Group-orbit code → Linear code over \(G\) → Additive \(q\)-ary code → Linear \(q\)-ary code → Tanner code") [\\(q\\)\-ary LDPC](https://errorcorrectionzoo.org/c/q-ary_ldpc "Group-orbit code → Linear code over \(G\) → Additive \(q\)-ary code → Linear \(q\)-ary code → Tanner code → \(q\)-ary LDPC code") [Divisible](https://errorcorrectionzoo.org/c/divisible "Group-orbit code → Linear code over \(G\) → Additive \(q\)-ary code → Linear \(q\)-ary code → Divisible code") [Self-dual linear](https://errorcorrectionzoo.org/c/self_dual "Group-orbit code → Linear code over \(G\) → Additive \(q\)-ary code → Dual additive code → Self-dual additive code → Self-dual linear code") [Linear code over \\(\\mathbb{Z}\_q\\)](https://errorcorrectionzoo.org/c/q-ary_linear_over_zq "Group-orbit code → Linear code over \(G\) → \(R\)-linear code → Linear code over \(\mathbb{Z}_q\)") [Gray](https://errorcorrectionzoo.org/c/gray "Group-orbit code → Binary group-orbit code → Linear binary code → Gray code") [Polytope](https://errorcorrectionzoo.org/c/polytope "Group-orbit code → Slepian group-orbit code → Polytope code") [Polyhedron](https://errorcorrectionzoo.org/c/polyhedron "Group-orbit code → Slepian group-orbit code → Polytope code → Polyhedron code")
Not all codes are group-orbit codes, and more generally one can classify codewords into orbits of the automorphism group [\[32\]](https://errorcorrectionzoo.org/c/ecc#citation-32).
[Random code](https://errorcorrectionzoo.org/c/random)
[Convolutional code](https://errorcorrectionzoo.org/c/convolutional)
## References
\[1\]
N. Levinson, “Coding Theory: A Counterexample to G. H. Hardy’s Conception of Applied Mathematics”, The American Mathematical Monthly 77, 249 (1970) [DOI](https://doi.org/10.1080%2F00029890.1970.11992464)
\[2\]
F. J. MacWilliams and N. J. A. Sloane. The theory of error correcting codes. Elsevier, 1977.
\[3\]
C. E. Shannon, “A Mathematical Theory of Communication”, Bell System Technical Journal 27, 379 (1948) [DOI](https://doi.org/10.1002%2Fj.1538-7305.1948.tb01338.x)
\[4\]
M. Christandl and A. Müller-Hermes, “Fault-Tolerant Coding for Quantum Communication”, IEEE Transactions on Information Theory 70, 282 (2024) [arXiv:2009.07161](https://arxiv.org/abs/2009.07161) [DOI](https://doi.org/10.1109%2Ftit.2022.3169438)
\[5\]
V. Strassen, “Asymptotische Absch¨atzungen in Shannons Informationstheorie,” Trans. Third Prague Conference on Information Theory, Prague, 689–723, (1962)
\[6\]
M. Hayashi, “Information Spectrum Approach to Second-Order Coding Rate in Channel Coding”, IEEE Transactions on Information Theory 55, 4947 (2009) [arXiv:0801.2242](https://arxiv.org/abs/0801.2242) [DOI](https://doi.org/10.1109%2Ftit.2009.2030478)
\[7\]
Y. Polyanskiy, H. V. Poor, and S. Verdu, “Channel Coding Rate in the Finite Blocklength Regime”, IEEE Transactions on Information Theory 56, 2307 (2010) [DOI](https://doi.org/10.1109%2Ftit.2010.2043769)
\[8\]
Y. Altug and A. B. Wagner, “Moderate Deviations in Channel Coding”, (2012) [arXiv:1208.1924](https://arxiv.org/abs/1208.1924)
\[9\]
Y. Polyanskiy and S. Verdu, “Channel dispersion and moderate deviations limits for memoryless channels”, 2010 48th Annual Allerton Conference on Communication, Control, and Computing (Allerton) 1334 (2010) [DOI](https://doi.org/10.1109%2Fallerton.2010.5707068)
\[10\]
C. T. Chubb, V. Y. F. Tan, and M. Tomamichel, “Moderate Deviation Analysis for Classical Communication over Quantum Channels”, Communications in Mathematical Physics 355, 1283 (2017) [arXiv:1701.03114](https://arxiv.org/abs/1701.03114) [DOI](https://doi.org/10.1007%2Fs00220-017-2971-1)
\[11\]
R. Gallager, Information Theory and Reliable Communication (Springer Vienna, 1972) [DOI](https://doi.org/10.1007%2F978-3-7091-2945-6)
\[12\]
I. Csiszár and J. Körner, Information Theory (Cambridge University Press, 2011) [DOI](https://doi.org/10.1017%2Fcbo9780511921889)
\[13\]
S. Arimoto, “On the converse to the coding theorem for discrete memoryless channels (Corresp.)”, IEEE Transactions on Information Theory 19, 357 (1973) [DOI](https://doi.org/10.1109%2Ftit.1973.1055007)
\[14\]
G. Dueck and J. Korner, “Reliability function of a discrete memoryless channel at rates above capacity (Corresp.)”, IEEE Transactions on Information Theory 25, 82 (1979) [DOI](https://doi.org/10.1109%2Ftit.1979.1056003)
\[15\]
S. H. Hassani, K. Alishahi, and R. L. Urbanke, “Finite-Length Scaling for Polar Codes”, IEEE Transactions on Information Theory 60, 5875 (2014) [DOI](https://doi.org/10.1109%2Ftit.2014.2341919)
\[16\]
Doeblin, W. (1937). Sur les propriétés asymptotiques de mouvement régis par certains types de chaines simples. Bulletin mathématique de la Société roumaine des sciences, 39(1), 57-115.
\[17\]
A. Makur and J. Singh, “Doeblin Coefficients and Related Measures”, IEEE Transactions on Information Theory 70, 4667 (2024) [arXiv:2309.08475](https://arxiv.org/abs/2309.08475) [DOI](https://doi.org/10.1109%2Ftit.2024.3367856)
\[18\]
S. Dougherty, J.-L. Kim, and P. Solé, “Open Problems in Coding Theory”, Contemporary Mathematics 79 (2015) [DOI](https://doi.org/10.1090%2Fconm%2F634%2F12692)
\[19\]
A. R. Calderbank, “The art of signaling: fifty years of coding theory”, IEEE Transactions on Information Theory 44, 2561 (1998) [DOI](https://doi.org/10.1109%2F18.720549)
\[20\]
D. J. Costello and G. D. Forney, “Channel Coding: The Road to Channel Capacity”, (2006) [arXiv:cs/0611112](https://arxiv.org/abs/cs/0611112)
\[21\]
B. Schroeder, E. Pinheiro, and W.-D. Weber, “DRAM errors in the wild”, Communications of the ACM 54, 100 (2011) [DOI](https://doi.org/10.1145%2F1897816.1897844)
\[22\]
S. Levy, K. B. Ferreira, N. DeBardeleben, T. Siddiqua, V. Sridharan, and E. Baseman, “Lessons Learned from Memory Errors Observed Over the Lifetime of Cielo”, SC18: International Conference for High Performance Computing, Networking, Storage and Analysis 554 (2018) [DOI](https://doi.org/10.1109%2Fsc.2018.00046)
\[23\]
K. B. Ferreira, S. Levy, J. Hemmert, and K. Pedretti, “Understanding Memory Failures on a Petascale Arm System”, Proceedings of the 31st International Symposium on High-Performance Parallel and Distributed Computing 84 (2022) [DOI](https://doi.org/10.1145%2F3502181.3531465)
\[24\]
C. Di Martino, Z. Kalbarczyk, R. K. Iyer, F. Baccanico, J. Fullop, and W. Kramer, “Lessons Learned from the Analysis of System Failures at Petascale: The Case of Blue Waters”, 2014 44th Annual IEEE/IFIP International Conference on Dependable Systems and Networks 610 (2014) [DOI](https://doi.org/10.1109%2Fdsn.2014.62)
\[25\]
J. Meza, Q. Wu, S. Kumar, and O. Mutlu, “Revisiting Memory Errors in Large-Scale Production Data Centers: Analysis and Modeling of New Trends from the Field”, 2015 45th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (2015) [DOI](https://doi.org/10.1109%2Fdsn.2015.57)
\[26\]
P. Delsarte and V. I. Levenshtein, “Association schemes and coding theory”, IEEE Transactions on Information Theory 44, 2477 (1998) [DOI](https://doi.org/10.1109%2F18.720545)
\[27\]
R. A. Bailey, Association Schemes (Cambridge University Press, 2004) [DOI](https://doi.org/10.1017%2Fcbo9780511610882)
\[28\]
W. K. Wootters and W. H. Zurek, “A single quantum cannot be cloned”, Nature 299, 802 (1982) [DOI](https://doi.org/10.1038%2F299802a0)
\[29\]
B. Yoshida, “Decoding the Entanglement Structure of Monitored Quantum Circuits”, (2021) [arXiv:2109.08691](https://arxiv.org/abs/2109.08691)
\[30\]
M. K. Patra and S. L. Braunstein, “An algebraic framework for information theory: Classical Information”, (2009) [arXiv:0910.1536](https://arxiv.org/abs/0910.1536)
\[31\]
G. Kuperberg and N. Weaver, “A von Neumann algebra approach to quantum metrics”, (2010) [arXiv:1005.0353](https://arxiv.org/abs/1005.0353)
\[32\]
J. H. Conway and N. J. A. Sloane, “Orbit and coset analysis of the Golay and related codes”, IEEE Transactions on Information Theory 36, 1038 (1990) [DOI](https://doi.org/10.1109%2F18.57203)
Page edit log
- [Victor V. Albert](https://errorcorrectionzoo.org/team#u-VictorVAlbert) (2022-11-06) — most recent
### Your contribution is welcome\!
[on github.com (edit & pull request)](https://github.com/errorcorrectionzoo/eczoo_data/edit/main/codes/classical/ecc.yml "Edit code information directly on github.com")— see [instructions](https://github.com/errorcorrectionzoo/eczoo_data/blob/main/README.md "edit source instructions")
[edit on this site](https://errorcorrectionzoo.org/edit_code#%7B%22code_id%22%3A%22ecc%22%2C%22code_yml_filename%22%3A%22codes%2Fclassical%2Fecc.yml%22%7D "edit code information on this site without using github")
Zoo Code ID: `ecc`
Cite as:
“Error-correcting code (ECC)”, The Error Correction Zoo (V. V. Albert & P. Faist, eds.), 2022. https://errorcorrectionzoo.org/c/ecc
BibTeX:
@incollection{eczoo\_ecc, title={Error-correcting code (ECC)}, booktitle={The Error Correction Zoo}, year={2022}, editor={Albert, Victor V. and Faist, Philippe}, url={https://errorcorrectionzoo.org/c/ecc} }
Share via:
[Twitter](https://twitter.com/intent/tweet?text=Error-correcting%20code%20\(ECC\)%20https%3A%2F%2Ferrorcorrectionzoo.org%2Fc%2Fecc) \| [Mastodon](https://toot.kytta.dev/?text=Error-correcting%20code%20\(ECC\)%20https%3A%2F%2Ferrorcorrectionzoo.org%2Fc%2Fecc&instance=https%3A%2F%2Fqubit-social.xyz) \| [Facebook](http://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Ferrorcorrectionzoo.org%2Fc%2Fecc&t=Error-correcting%20code%20\(ECC\)) \| [E-mail](mailto:?subject=Error-correcting%20code%20\(ECC\)&body=Error-correcting%20code%20\(ECC\)%20https%3A%2F%2Ferrorcorrectionzoo.org%2Fc%2Fecc)
Permanent link:
https://errorcorrectionzoo.org/c/ecc
## Cite as:
“Error-correcting code (ECC)”, The Error Correction Zoo (V. V. Albert & P. Faist, eds.), 2022. https://errorcorrectionzoo.org/c/ecc
Github: <https://github.com/errorcorrectionzoo/eczoo_data/edit/main/codes/classical/ecc.yml>.
- [Classical-quantum (c-q)](https://errorcorrectionzoo.org/c/classical_into_quantum)
- [OAQECC](https://errorcorrectionzoo.org/c/oaecc)
- [Quantum](https://errorcorrectionzoo.org/c/quantum_into_quantum)
- [Homogeneous-space](https://errorcorrectionzoo.org/c/homogeneous_space_classical)
- [Block](https://errorcorrectionzoo.org/c/block)
- [Generalized concatenated code (GCC)](https://errorcorrectionzoo.org/c/generalized_concatenated)
- [Parallel concatenated](https://errorcorrectionzoo.org/c/parallel_concatenated)
- [Two-point homogeneous-space](https://errorcorrectionzoo.org/c/2pt_homogeneous)
- [\\(t\\)\-design](https://errorcorrectionzoo.org/c/t-designs)
- [QECC](https://errorcorrectionzoo.org/c/qecc)
# [Classical Domain](https://errorcorrectionzoo.org/domain/classical_domain)
# [Quantum Domain](https://errorcorrectionzoo.org/domain/quantum_domain)
# [Classical-quantum Domain](https://errorcorrectionzoo.org/domain/classical_into_quantum_domain)
#
- [Home](https://errorcorrectionzoo.org/)
- [Team](https://errorcorrectionzoo.org/team)
- [About](https://errorcorrectionzoo.org/about)
- [Code graph](https://errorcorrectionzoo.org/code_graph)
- [Lists](https://errorcorrectionzoo.org/lists)
- [Concepts glossary](https://errorcorrectionzoo.org/concepts)
- [Add new code](https://errorcorrectionzoo.org/edit_code)
- [Search](https://errorcorrectionzoo.org/search)
#
- [🌒]()
[≡](https://errorcorrectionzoo.org/c/ecc#navigation)
[Error correction zoo](https://errorcorrectionzoo.org/about) by Victor V. Albert, Philippe Faist, and [many contributors](https://errorcorrectionzoo.org/team). This work is licensed under a [CC-BY-SA License](http://creativecommons.org/licenses/by-sa/4.0/). See [how to contribute](https://github.com/errorcorrectionzoo/eczoo_data/blob/main/CONTRIBUTING.md). |
| Readable Markdown | [\[Jump to code hierarchy\]](https://errorcorrectionzoo.org/c/ecc#code_hierarchy)
Root code for the [Classical Domain](https://errorcorrectionzoo.org/domain/classical_domain)
Codes for communication over classical channels
## Description
Code designed for transmission of classical information through classical channels.
A code is a subset of a set or alphabet \\(\\Sigma\\), with each element called a codeword. An error-correcting code consists of \\(K\\) codewords over an alphabet with \\(N\\) elements such that it is possible to recover the codewords from errors \\(E\\) from some error set \\(\\mathcal{E}\\). The table below lists the most common alphabets, along with names of the corresponding codewords of a block code, i.e., a code on \\(n\\) copies of the alphabet.
| alphabet \\(\\Sigma\\) | codewords |
|---|---|
| \\(\\mathbb{Z}\_{2}=\\mathbb{F}\_2\\) | bitstrings |
| \\(\\mathbb{F}\_q\\) | \\(q\\)\-ary strings |
| \\(\\mathbb{Z}\_{q}\\) | \\(q\\)\-ary strings over \\(\\mathbb{Z}\_{q}\\) |
| \\(\\mathbb{R}\\) | sphere packings |
| \\(G\\) | group elements |
| \\(G/H\\) | cosets |
Table I: Table listing the most common alphabets used in ECCs. Here, \\(\\mathbb{F}\_q\\) is a [finite field](https://errorcorrectionzoo.org/c/ecc#defterm-Finite_20Xfields), \\(G\\) is a group, and \\(H\\) is a subgroup of \\(G\\).
### Finite-field alphabet
Finite fields: The most common and useful [\[1\]](https://errorcorrectionzoo.org/c/ecc#citation-1) alphabets used in block codes are Galois or finite fields \\(\\mathbb{F}\_q\\), which are sets of \\(q\\) elements closed under addition and multiplication. They are finite analogues of the real or complex numbers, and a unique field exists for every power \\(q=p^m\\) of a prime \\(p\\). The prime-field case reduces to \\(\\mathbb{Z}\_p\\), a group under addition that is promoted to a field by defining multiplication modulo \\(p\\); the case \\(p=2\\) yields the binary field \\(\\mathbb{Z}\_2\\). Every finite field comes with a 0 element (additive identity), a 1 element (multiplicative identity), and additive (multiplicative) inverses for all (nonzero) elements. An element whose powers exhaust all nonzero field elements is called primitive. Fields come with a trace operation, the field trace, which maps elements \\(\\gamma \\in \\mathbb{F}\_q\\) to elements of \\(\\mathbb{F}\_p\\) as \\begin{align} \\text{tr}(\\gamma)=\\sum\_{k=0}^{m-1}\\gamma^{p^{k}}~. \\tag\*{(1)}\\end{align} The field trace can be thought of as an averaging over the field’s Galois group, which is the cyclic group generated by \\(\\gamma\\to\\gamma^p\\) [\[2; pg. 113\]](https://errorcorrectionzoo.org/c/ecc#citation-2). Fields also come with a field norm, \\begin{align} N(\\gamma)=\\prod\_{k=0}^{m-1}\\gamma^{p^{k}}=\\gamma^{(p^{m}-1)/(p-1)}~. \\tag\*{(2)}\\end{align} In the case of the complex numbers, analogues of the field trace and field norm are the real part and norm squared of a complex number, respectively.
Any field \\(\\mathbb{F}\_{q=p^m}\\) can be thought of as an \\(m\\)\-dimensional vector space over \\(\\mathbb{F}\_p\\) a.k.a. the \\(m\\)th extension of \\(\\mathbb{F}\_p\\) (similar to the complex numbers being an extension of the reals). Conversely, \\(\\mathbb{F}\_p\\) is an example of a subfield of \\(\\mathbb{F}\_q\\). Certain field elements are chosen to be the basis of \\(\\mathbb{F}\_q\\) over \\(\\mathbb{F}\_p\\), and all other elements are expressed as linear combinations of these basis elements. More generally, elements of fields such as \\(\\mathbb{F}\_{p^{ml}}\\) can be written as \\(m\\)\-dimensional vectors over \\(\\mathbb{F}\_{p^l}\\) or \\((m\\times l)\\)\-dimensional matrices over \\(\\mathbb{F}\_p\\). This idea is used to convert between ordinary block codes and matrix-based codes such as disk array codes and rank-metric codes. The field norm and field trace can likewise be defined for fields \\(\\mathbb{F}\_{q^m}\\) that are extensions of \\(\\mathbb{F}\_q\\) for non-prime \\(q\\).
An example of a field is the quaternary Galois field \\(\\mathbb{F}\_4 = \\{0,1,\\omega, \\omega^2=\\bar{\\omega}\\}\\) with \\(p=m=2\\). In this case, \\(\\omega\\) can be interpreted as a third root of unity, but more formally it is defined as a solution to the polynomial equation \\(1+x+x^2=0\\). Field elements can be represented as two-dimensional vectors with binary elements, \\(\\mathbb{F}\_4=\\mathbb{F}\_2^2\\), using the basis \\(1\\cong(1,0)\\) and \\(\\omega\\cong(0,1)\\): \\begin{align} 0&\\leftrightarrow(0,0)\\cong0\\cdot1+0\\cdot\\omega\\tag\*{(3)}\\\\1&\\leftrightarrow(0,1)\\cong0\\cdot1+1\\cdot\\omega\\tag\*{(4)}\\\\\\omega&\\leftrightarrow(1,1)\\cong1\\cdot1+1\\cdot\\omega\\tag\*{(5)}\\\\\\bar{\\omega}&\\leftrightarrow(1,0)\\cong1\\cdot1+0\\cdot\\omega~. \\tag\*{(6)}\\end{align} In this way, the field elements form the Klein four group \\(\\mathbb{Z}\_2\\times\\mathbb{Z}\_2\\) under addition. One can check that the trace operation, \\(\\text{tr}(\\gamma) = \\gamma + \\gamma^2\\), outputs either 0 or 1 for any element \\(\\gamma\\in \\mathbb{F}\_4\\).
## Rate
The Shannon channel capacity (the maximum of the mutual information over input and output distributions) is the highest rate of information transmission through a classical (i.e., non-quantum) channel with arbitrarily small error rate [\[3\]](https://errorcorrectionzoo.org/c/ecc#citation-3). The fault-tolerant capacity is the capacity for the more general case where the encoding and decoding maps are also assumed to undergo noise [\[4\]](https://errorcorrectionzoo.org/c/ecc#citation-4).
Corrections to the capacity and tradeoff between decoding error, code rate and code length are determined using small \[[5](https://errorcorrectionzoo.org/c/ecc#citation-5)–[7](https://errorcorrectionzoo.org/c/ecc#citation-7)\], moderate \[[8](https://errorcorrectionzoo.org/c/ecc#citation-8)–[10](https://errorcorrectionzoo.org/c/ecc#citation-10)\] and large \[[11](https://errorcorrectionzoo.org/c/ecc#citation-11)–[14](https://errorcorrectionzoo.org/c/ecc#citation-14)\] deviation analysis. Sometimes the difference from the asymptotic rate at finite block length can be characterized by the channel dispersion \[[7](https://errorcorrectionzoo.org/c/ecc#citation-7),[15](https://errorcorrectionzoo.org/c/ecc#citation-15)\]. Doublin coefficients [\[16\]](https://errorcorrectionzoo.org/c/ecc#citation-16) for classical channels have been studied [\[17\]](https://errorcorrectionzoo.org/c/ecc#citation-17).
## Notes
See Ref. [\[18\]](https://errorcorrectionzoo.org/c/ecc#citation-18) for a list of open problems in coding theory.See Refs. \[[19](https://errorcorrectionzoo.org/c/ecc#citation-19),[20](https://errorcorrectionzoo.org/c/ecc#citation-20)\] for reviews of coding theory.Classical systems such as RAM [\[21\]](https://errorcorrectionzoo.org/c/ecc#citation-21), HPC systems \[[22](https://errorcorrectionzoo.org/c/ecc#citation-22)–[24](https://errorcorrectionzoo.org/c/ecc#citation-24)\], and data centers [\[25\]](https://errorcorrectionzoo.org/c/ecc#citation-25) suffer from noise.
## Cousins
- [Two-point homogeneous-space code](https://errorcorrectionzoo.org/c/2pt_homogeneous)— ECCs and \\(t\\)\-designs on two-point homogeneous spaces are intimately related via association schemes \[[26](https://errorcorrectionzoo.org/c/ecc#citation-26),[27](https://errorcorrectionzoo.org/c/ecc#citation-27)\].
- [\\(t\\)\-design](https://errorcorrectionzoo.org/c/t-designs)— ECCs and \\(t\\)\-designs on two-point homogeneous spaces are intimately related via association schemes \[[26](https://errorcorrectionzoo.org/c/ecc#citation-26),[27](https://errorcorrectionzoo.org/c/ecc#citation-27)\].
- [Quantum error-correcting code (QECC)](https://errorcorrectionzoo.org/c/qecc)— Quantum information cannot be copied using a linear process [\[28\]](https://errorcorrectionzoo.org/c/ecc#citation-28), so one cannot send several copies of a quantum state through a channel as can be done for classical information. The [Knill-Laflamme conditions](https://errorcorrectionzoo.org/c/qecc_finite#defterm-Knill-Laflamme_20Xconditions) can similarly be formulated for classical codes [\[29; Sec. 3\]](https://errorcorrectionzoo.org/c/ecc#citation-29), although they are not as widely as used as those for quantum codes.
## Primary Hierarchy
Parents
Any ECC can be embedded into a quantum Hilbert space, and thus passed through a quantum channel, by associating elements of the alphabet with basis vectors in a Hilbert space over the complex numbers. In other words, classical codewords are elements of an alphabet, while quantum codewords are functions on the alphabet. Classical codes can be unified with quantum codes using various algebraic frameworks \[[30](https://errorcorrectionzoo.org/c/ecc#citation-30),[31](https://errorcorrectionzoo.org/c/ecc#citation-31)\].
Error-correcting code (ECC)
Children
Not all codes are group-orbit codes, and more generally one can classify codewords into orbits of the automorphism group [\[32\]](https://errorcorrectionzoo.org/c/ecc#citation-32).
## References
\[1\]
N. Levinson, “Coding Theory: A Counterexample to G. H. Hardy’s Conception of Applied Mathematics”, The American Mathematical Monthly 77, 249 (1970) [DOI](https://doi.org/10.1080%2F00029890.1970.11992464)
\[2\]
F. J. MacWilliams and N. J. A. Sloane. The theory of error correcting codes. Elsevier, 1977.
\[3\]
C. E. Shannon, “A Mathematical Theory of Communication”, Bell System Technical Journal 27, 379 (1948) [DOI](https://doi.org/10.1002%2Fj.1538-7305.1948.tb01338.x)
\[4\]
M. Christandl and A. Müller-Hermes, “Fault-Tolerant Coding for Quantum Communication”, IEEE Transactions on Information Theory 70, 282 (2024) [arXiv:2009.07161](https://arxiv.org/abs/2009.07161) [DOI](https://doi.org/10.1109%2Ftit.2022.3169438)
\[5\]
V. Strassen, “Asymptotische Absch¨atzungen in Shannons Informationstheorie,” Trans. Third Prague Conference on Information Theory, Prague, 689–723, (1962)
\[6\]
M. Hayashi, “Information Spectrum Approach to Second-Order Coding Rate in Channel Coding”, IEEE Transactions on Information Theory 55, 4947 (2009) [arXiv:0801.2242](https://arxiv.org/abs/0801.2242) [DOI](https://doi.org/10.1109%2Ftit.2009.2030478)
\[7\]
Y. Polyanskiy, H. V. Poor, and S. Verdu, “Channel Coding Rate in the Finite Blocklength Regime”, IEEE Transactions on Information Theory 56, 2307 (2010) [DOI](https://doi.org/10.1109%2Ftit.2010.2043769)
\[8\]
Y. Altug and A. B. Wagner, “Moderate Deviations in Channel Coding”, (2012) [arXiv:1208.1924](https://arxiv.org/abs/1208.1924)
\[9\]
Y. Polyanskiy and S. Verdu, “Channel dispersion and moderate deviations limits for memoryless channels”, 2010 48th Annual Allerton Conference on Communication, Control, and Computing (Allerton) 1334 (2010) [DOI](https://doi.org/10.1109%2Fallerton.2010.5707068)
\[10\]
C. T. Chubb, V. Y. F. Tan, and M. Tomamichel, “Moderate Deviation Analysis for Classical Communication over Quantum Channels”, Communications in Mathematical Physics 355, 1283 (2017) [arXiv:1701.03114](https://arxiv.org/abs/1701.03114) [DOI](https://doi.org/10.1007%2Fs00220-017-2971-1)
\[11\]
R. Gallager, Information Theory and Reliable Communication (Springer Vienna, 1972) [DOI](https://doi.org/10.1007%2F978-3-7091-2945-6)
\[12\]
I. Csiszár and J. Körner, Information Theory (Cambridge University Press, 2011) [DOI](https://doi.org/10.1017%2Fcbo9780511921889)
\[13\]
S. Arimoto, “On the converse to the coding theorem for discrete memoryless channels (Corresp.)”, IEEE Transactions on Information Theory 19, 357 (1973) [DOI](https://doi.org/10.1109%2Ftit.1973.1055007)
\[14\]
G. Dueck and J. Korner, “Reliability function of a discrete memoryless channel at rates above capacity (Corresp.)”, IEEE Transactions on Information Theory 25, 82 (1979) [DOI](https://doi.org/10.1109%2Ftit.1979.1056003)
\[15\]
S. H. Hassani, K. Alishahi, and R. L. Urbanke, “Finite-Length Scaling for Polar Codes”, IEEE Transactions on Information Theory 60, 5875 (2014) [DOI](https://doi.org/10.1109%2Ftit.2014.2341919)
\[16\]
Doeblin, W. (1937). Sur les propriétés asymptotiques de mouvement régis par certains types de chaines simples. Bulletin mathématique de la Société roumaine des sciences, 39(1), 57-115.
\[17\]
A. Makur and J. Singh, “Doeblin Coefficients and Related Measures”, IEEE Transactions on Information Theory 70, 4667 (2024) [arXiv:2309.08475](https://arxiv.org/abs/2309.08475) [DOI](https://doi.org/10.1109%2Ftit.2024.3367856)
\[18\]
S. Dougherty, J.-L. Kim, and P. Solé, “Open Problems in Coding Theory”, Contemporary Mathematics 79 (2015) [DOI](https://doi.org/10.1090%2Fconm%2F634%2F12692)
\[19\]
A. R. Calderbank, “The art of signaling: fifty years of coding theory”, IEEE Transactions on Information Theory 44, 2561 (1998) [DOI](https://doi.org/10.1109%2F18.720549)
\[20\]
D. J. Costello and G. D. Forney, “Channel Coding: The Road to Channel Capacity”, (2006) [arXiv:cs/0611112](https://arxiv.org/abs/cs/0611112)
\[21\]
B. Schroeder, E. Pinheiro, and W.-D. Weber, “DRAM errors in the wild”, Communications of the ACM 54, 100 (2011) [DOI](https://doi.org/10.1145%2F1897816.1897844)
\[22\]
S. Levy, K. B. Ferreira, N. DeBardeleben, T. Siddiqua, V. Sridharan, and E. Baseman, “Lessons Learned from Memory Errors Observed Over the Lifetime of Cielo”, SC18: International Conference for High Performance Computing, Networking, Storage and Analysis 554 (2018) [DOI](https://doi.org/10.1109%2Fsc.2018.00046)
\[23\]
K. B. Ferreira, S. Levy, J. Hemmert, and K. Pedretti, “Understanding Memory Failures on a Petascale Arm System”, Proceedings of the 31st International Symposium on High-Performance Parallel and Distributed Computing 84 (2022) [DOI](https://doi.org/10.1145%2F3502181.3531465)
\[24\]
C. Di Martino, Z. Kalbarczyk, R. K. Iyer, F. Baccanico, J. Fullop, and W. Kramer, “Lessons Learned from the Analysis of System Failures at Petascale: The Case of Blue Waters”, 2014 44th Annual IEEE/IFIP International Conference on Dependable Systems and Networks 610 (2014) [DOI](https://doi.org/10.1109%2Fdsn.2014.62)
\[25\]
J. Meza, Q. Wu, S. Kumar, and O. Mutlu, “Revisiting Memory Errors in Large-Scale Production Data Centers: Analysis and Modeling of New Trends from the Field”, 2015 45th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (2015) [DOI](https://doi.org/10.1109%2Fdsn.2015.57)
\[26\]
P. Delsarte and V. I. Levenshtein, “Association schemes and coding theory”, IEEE Transactions on Information Theory 44, 2477 (1998) [DOI](https://doi.org/10.1109%2F18.720545)
\[27\]
R. A. Bailey, Association Schemes (Cambridge University Press, 2004) [DOI](https://doi.org/10.1017%2Fcbo9780511610882)
\[28\]
W. K. Wootters and W. H. Zurek, “A single quantum cannot be cloned”, Nature 299, 802 (1982) [DOI](https://doi.org/10.1038%2F299802a0)
\[29\]
B. Yoshida, “Decoding the Entanglement Structure of Monitored Quantum Circuits”, (2021) [arXiv:2109.08691](https://arxiv.org/abs/2109.08691)
\[30\]
M. K. Patra and S. L. Braunstein, “An algebraic framework for information theory: Classical Information”, (2009) [arXiv:0910.1536](https://arxiv.org/abs/0910.1536)
\[31\]
G. Kuperberg and N. Weaver, “A von Neumann algebra approach to quantum metrics”, (2010) [arXiv:1005.0353](https://arxiv.org/abs/1005.0353)
\[32\]
J. H. Conway and N. J. A. Sloane, “Orbit and coset analysis of the Golay and related codes”, IEEE Transactions on Information Theory 36, 1038 (1990) [DOI](https://doi.org/10.1109%2F18.57203)
Page edit log
- [Victor V. Albert](https://errorcorrectionzoo.org/team#u-VictorVAlbert) (2022-11-06) — most recent
Cite as:
“Error-correcting code (ECC)”, The Error Correction Zoo (V. V. Albert & P. Faist, eds.), 2022. https://errorcorrectionzoo.org/c/ecc
BibTeX:
@incollection{eczoo\_ecc, title={Error-correcting code (ECC)}, booktitle={The Error Correction Zoo}, year={2022}, editor={Albert, Victor V. and Faist, Philippe}, url={https://errorcorrectionzoo.org/c/ecc} }
## Cite as:
“Error-correcting code (ECC)”, The Error Correction Zoo (V. V. Albert & P. Faist, eds.), 2022. https://errorcorrectionzoo.org/c/ecc
Github: <https://github.com/errorcorrectionzoo/eczoo_data/edit/main/codes/classical/ecc.yml>.
- [Classical-quantum (c-q)](https://errorcorrectionzoo.org/c/classical_into_quantum)
- [OAQECC](https://errorcorrectionzoo.org/c/oaecc)
- [Quantum](https://errorcorrectionzoo.org/c/quantum_into_quantum)
- [Homogeneous-space](https://errorcorrectionzoo.org/c/homogeneous_space_classical)
- [Block](https://errorcorrectionzoo.org/c/block)
- [Generalized concatenated code (GCC)](https://errorcorrectionzoo.org/c/generalized_concatenated)
- [Parallel concatenated](https://errorcorrectionzoo.org/c/parallel_concatenated)
- [Two-point homogeneous-space](https://errorcorrectionzoo.org/c/2pt_homogeneous)
- [\\(t\\)\-design](https://errorcorrectionzoo.org/c/t-designs)
- [QECC](https://errorcorrectionzoo.org/c/qecc)
## [Classical Domain](https://errorcorrectionzoo.org/domain/classical_domain)
## [Quantum Domain](https://errorcorrectionzoo.org/domain/quantum_domain)
## [Classical-quantum Domain](https://errorcorrectionzoo.org/domain/classical_into_quantum_domain)
- [Home](https://errorcorrectionzoo.org/)
- [Team](https://errorcorrectionzoo.org/team)
- [About](https://errorcorrectionzoo.org/about)
- [Code graph](https://errorcorrectionzoo.org/code_graph)
- [Lists](https://errorcorrectionzoo.org/lists)
- [Concepts glossary](https://errorcorrectionzoo.org/concepts)
- [Add new code](https://errorcorrectionzoo.org/edit_code)
- [Search](https://errorcorrectionzoo.org/search)
- 🌒
[≡](https://errorcorrectionzoo.org/c/ecc#navigation) |
| Shard | 172 (laksa) |
| Root Hash | 13709360758981584572 |
| Unparsed URL | org,errorcorrectionzoo!/c/ecc s443 |