Skip to content

Commit

Permalink
evenodd
Browse files Browse the repository at this point in the history
  • Loading branch information
valbert4 committed Aug 19, 2024
1 parent 866fefa commit a26d254
Show file tree
Hide file tree
Showing 14 changed files with 54 additions and 21 deletions.
9 changes: 2 additions & 7 deletions code_extra/bib_preset.yml
Original file line number Diff line number Diff line change
Expand Up @@ -98,18 +98,13 @@ HPAlgCodes:
HPArray:
_ready_formatted:
flm: >-
M. Blaum, P. G. Farrell, H. C. van Tilborg, 1998. Array codes. Handbook of coding theory, 2 (Part 2), pp. 1855-1909.
M. Blaum, P. G. Farrell, H. C. A. van Tilborg, 1998. Array codes. Handbook of coding theory, 2 (Part 2), pp. 1855-1909.
LevBounds:
HPLevBounds:
_ready_formatted:
flm: >-
V. I. Levenshtein, “Universal bounds for codes and designs,” in Handbook of Coding Theory 1, eds. V. S. Pless and W. C. Huffman. Amsterdam: Elsevier, 1998, pp.499-648.
BlaumArray:
_ready_formatted:
flm: >-
M. Blaum, P. G. Farrell, H. C. A. Van Tilborg, “Array codes,” in Handbook of Coding Theory 1, eds. V. S. Pless and W. C. Huffman. Amsterdam: Elsevier, 1998, Ch. 22.
HPRainsSloane:
_ready_formatted:
flm: >-
Expand Down
2 changes: 1 addition & 1 deletion codes/classical/bits/combinatorial_design.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ relations:
detail: 'If the \hyperref[topic:weight-enumerator]{number} of a code is less than or equal to its \hyperref[topic:weight-enumerator]{dual distance}, then some sets of fixed-weight codewords form a combinatorial design \cite[Thm. 6.7]{preset:MacSlo}.'
- code_id: constant_weight
- code_id: subspace_design
detail: 'Combinatorial designs are designs on a space of fixed-weight binary strings (a.k.a. Johnson association scheme) \cite{manual:{Delsarte, Philippe. "An algebraic approach to the association schemes of coding theory." Philips Res. Rep. Suppl. 10 (1973): vi+-97.},preset:LevBounds}.
detail: 'Combinatorial designs are designs on a space of fixed-weight binary strings (a.k.a. Johnson association scheme) \cite{manual:{Delsarte, Philippe. "An algebraic approach to the association schemes of coding theory." Philips Res. Rep. Suppl. 10 (1973): vi+-97.},preset:HPLevBounds}.
Subspace designs reduce to combinatorial designs for \(q=2\).'
cousins:
- code_id: q-ary_digits_into_q-ary_digits
Expand Down
5 changes: 4 additions & 1 deletion codes/classical/matrices/raid/array.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,16 @@ description: |
Matrix code designed for use in an RAID-type array of hard-drives such that information is protected against erasure of one or more hard drives.
notes:
- 'See \cite{preset:HPArray}\cite[Ch. 14]{doi:10.1002/0471792748}\cite{preset:BlaumArray} for introductions.'
- 'See \cite{preset:HPArray}\cite[Ch. 14]{doi:10.1002/0471792748}\cite{preset:HPArray} for introductions.'


relations:
parents:
- code_id: matrices_into_matrices
- code_id: distributed_storage
cousins:
- code_id: reed_solomon
detail: 'RS codes over \(q=2^m\) are used in RAID 6 \cite{manual:{Anvin, H. Peter. "The mathematics of RAID-6." (2007).},manual:{S. T. Position. (2009) Common raid disk data format specification. [Online]. Available: http://www.snia.org/tech activities/standards/curr standards/ddf}}; see \cite{preset:HPArray}.'


# Begin Entry Meta Information
Expand Down
4 changes: 2 additions & 2 deletions codes/classical/matrices/raid/b_array.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ name: 'B-code'
introduced: '\cite{doi:10.1109/18.179343}'

description: |
The first array code, constructed over \(GF(q)\).
The first array code, constructed over \(GF(q)\). See \cite{preset:HPArray} for more details.
features:
decoders:
Expand All @@ -24,7 +24,7 @@ relations:
- code_id: array
cousins:
- code_id: reed_solomon
detail: 'B-codes can be interpreted as RS codes over polynomials whose symbols lie in Galois rings \cite{doi:10.1109/18.179343,doi:10.1007/978-1-4615-1525-8_7}.'
detail: 'B-codes can be interpreted as RS codes over polynomials whose symbols lie in Galois rings \cite{doi:10.1109/18.179343,doi:10.1007/978-1-4615-1525-8_7}.'


# Begin Entry Meta Information
Expand Down
32 changes: 32 additions & 0 deletions codes/classical/matrices/raid/evenodd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#######################################################
## This is a code entry in the error correction zoo. ##
## https://github.com/errorcorrectionzoo ##
#######################################################


code_id: evenodd
physical: matrices


name: 'EVENODD code'
introduced: '\cite{doi:10.1109/12.364531}'

description: |
A binary array code that can correct any two disk failures (i.e., two erasures). See \cite{preset:HPArray} for more details.
features:
decoders:
- 'Efficient decoding algorithm against two erasures \cite{doi:10.1109/12.364531}.'


relations:
parents:
- code_id: array


# Begin Entry Meta Information
_meta:
# Change log - most recent first
changelog:
- user_id: VictorVAlbert
date: '2024-08-19'
1 change: 0 additions & 1 deletion codes/classical/matrices/raid/x_array.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ description: |
relations:
parents:
- code_id: array
- code_id: mds


# Begin Entry Meta Information
Expand Down
2 changes: 1 addition & 1 deletion codes/classical/matrices/rank-metric/rank_metric.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ realizations:

notes:
- 'See Ref. \cite{arxiv:1410.1333} for a discussion of MacWilliams identities and the relationship between rank metric and Gabidulin codes.'
- 'See Ref. \cite{doi:10.1017/9781009283403} for more details.'
- 'See Ref. \cite{doi:10.1017/9781009283403}\cite[Sec. 5]{preset:HPArray} for more details.'

relations:
parents:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
code_id: delsarte_optimal

name: 'Sharp configuration'
introduced: '\cite{doi:10.1007/BF00053379,preset:LevBounds,arxiv:math/0607446}'
introduced: '\cite{doi:10.1007/BF00053379,preset:HPLevBounds,arxiv:math/0607446}'

alternative_names:
- 'Delsarte code'
Expand All @@ -16,7 +16,7 @@ description: |
For codes on a compact connected two-point homogeneous space,
\(C\) is a design of strength \(M\) and admits \(m\) different distances between its points such that \(M \geq 2m - 1 - \delta\), where \(\delta\) is one if there are two antipodal points in \(C\) and zero otherwise \cite{arxiv:math/0607446}.
Sharp configurations attain the Levenshtein bound \cite{manual:{V. I. Levenshtein, "On choosing polynomials to obtain bounds in packing problems." Proc. Seventh All-Union Conf. on Coding Theory and Information Transmission, Part II, Moscow, Vilnius. 1978.},manual:{V. I. Levenshtein, “On bounds for packings in n-dimensional Euclidean space”, Dokl. Akad. Nauk SSSR, 245:6 (1979), 1299–1303},doi:10.1007/BF00053379,preset:LevBounds}.
Sharp configurations attain the Levenshtein bound \cite{manual:{V. I. Levenshtein, "On choosing polynomials to obtain bounds in packing problems." Proc. Seventh All-Union Conf. on Coding Theory and Information Transmission, Part II, Moscow, Vilnius. 1978.},manual:{V. I. Levenshtein, “On bounds for packings in n-dimensional Euclidean space”, Dokl. Akad. Nauk SSSR, 245:6 (1979), 1299–1303},doi:10.1007/BF00053379,preset:HPLevBounds}.
However, not all codes that attain the Levenshtein bound are sharp configurations.
See \cite[Table 9.2]{doi:10.1007/BF00053379} for Levenshtein-bound achieving codes on various projective spaces.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ description: |
Such a design is called a \hyperref[code:combinatorial_design]{combinatorial design} (a.k.a. block design or covering design) \cite{manual:{Delsarte, Philippe. "An algebraic approach to the association schemes of coding theory." Philips Res. Rep. Suppl. 10 (1973): vi+-97.}}, which includes Steiner systems as a special case.
Designs on the full space of binary strings (Hamming space) are called \hyperref[code:orthogonal_array]{orthogonal arrays}.
More generally, designs exist when \(X\) is \(q\)-ary Hamming space, ordered Hamming space \cite{doi:10.4153/CJM-1999-017-5,arXiv:cs/0702033}, \(q\)-Johnson space \cite{manual:{Cameron, Peter J. "Generalisation of Fisher’s inequality to fields with more than one element." Combinatorics, London Math. Soc. Lecture Note Ser 13 (1973): 9-13.},doi:10.1145/2488608.2488715} (where they are called \hyperref[code:subspace_design]{subspace designs}), a sphere \cite{doi:10.1007/BF03187604} (where they are called \hyperref[code:spherical_design]{spherical designs}), or a compact connected two-point homogeneous space \cite{doi:10.1109/18.720545,preset:LevBounds,arXiv:1308.3188} (the sphere or the real, complex, quaternionic, or octonionic projective spaces \cite{doi:10.2307/1969427}).
More generally, designs exist when \(X\) is \(q\)-ary Hamming space, ordered Hamming space \cite{doi:10.4153/CJM-1999-017-5,arXiv:cs/0702033}, \(q\)-Johnson space \cite{manual:{Cameron, Peter J. "Generalisation of Fisher’s inequality to fields with more than one element." Combinatorics, London Math. Soc. Lecture Note Ser 13 (1973): 9-13.},doi:10.1145/2488608.2488715} (where they are called \hyperref[code:subspace_design]{subspace designs}), a sphere \cite{doi:10.1007/BF03187604} (where they are called \hyperref[code:spherical_design]{spherical designs}), or a compact connected two-point homogeneous space \cite{doi:10.1109/18.720545,preset:HPLevBounds,arXiv:1308.3188} (the sphere or the real, complex, quaternionic, or octonionic projective spaces \cite{doi:10.2307/1969427}).
Complex projective designs are designs on the space of all quantum states \cite{arXiv:quant-ph/0310075,arxiv:quant-ph/0701126,doi:10.1017/9781139207010}.
Symmetric informationally complete quantum measurements (SIC-POVMs) \cite{arXiv:quant-ph/0310075} and mutually unbiased bases (MUBs) \cite{arxiv:1004.3348,arxiv:1505.01123} are important examples of such designs.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ realizations:
- 'RS codes as outer codes concatenated with convolutional codes are used indirectly in space exploration programs such as Voyager and Galileo. RS codes were part of a telemetry channel coding standard issued by the Consultative Committee for Space Data Systems (see Ref. \cite{doi:10.1109/9780470546345}, Ch. 3).'
- 'Automatic repeat request (ARQ) data transmission protocols (see Ref. \cite{doi:10.1109/9780470546345}, Ch. 7).'
- 'Slow-frequency-hop spread-spectrum transmission (see Ref. \cite{doi:10.1109/9780470546345}, Chs. 8-9).'
- 'RS codes over \(q=2^m\) are used in RAID 6 \cite{manual:{Anvin, H. Peter. "The mathematics of RAID-6." (2007).},manual:{S. T. Position. (2009) Common raid disk data format specification. [Online]. Available: http://www.snia.org/tech activities/standards/curr standards/ddf}}; see \cite{preset:HPArray}.'
- 'Coded sharding designs in blockchains to increase efficiency \cite{arxiv:1809.10361}.'
- 'Used in QR-Codes to retrieve damaged barcodes \cite{manual:{International Organization for Standardization, Information Technology: Automatic Identification and Data Capture Techniques-QR Code 2005 Bar Code Symbology Specification, 2nd ed., IEC18004 (ISO, 2006).}}.'
- 'Wireless communication systems such as 3G, DVB, and WiMAX \cite{doi:10.1109/PIMRC.2010.5672091}.'
Expand Down
2 changes: 1 addition & 1 deletion codes/classical/q-ary_digits/orthogonal_array.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ relations:
- code_id: q-ary_digits_into_q-ary_digits
detail: 'There is a relation between \(q\)-ary codes and orthogonal arrays which is phrased in terms of the codes'' \hyperref[topic:weight-enumerator]{dual distance} \cite[Thm. 4.5]{doi:10.1016/S0019-9958(73)80007-5}\cite[Thm. 4.9]{doi:10.1007/978-1-4612-1478-6}.'
- code_id: t-designs
detail: 'Orthogonal arrays are designs on Hamming space \(GF(q)^n\) (a.k.a. the Hamming association scheme) \cite{manual:{Delsarte, Philippe. "An algebraic approach to the association schemes of coding theory." Philips Res. Rep. Suppl. 10 (1973): vi+-97.},doi:10.1137/0134012,preset:LevBounds}\cite[Exam. 1]{doi:10.1109/18.720545}; see also Ref. \cite{arxiv:1302.4295}.'
detail: 'Orthogonal arrays are designs on Hamming space \(GF(q)^n\) (a.k.a. the Hamming association scheme) \cite{manual:{Delsarte, Philippe. "An algebraic approach to the association schemes of coding theory." Philips Res. Rep. Suppl. 10 (1973): vi+-97.},doi:10.1137/0134012,preset:HPLevBounds}\cite[Exam. 1]{doi:10.1109/18.720545}; see also Ref. \cite{arxiv:1302.4295}.'
cousins:
- code_id: golay
detail: 'The extended Golay code is an orthogonal array of strength 7 \cite[Exam. 1]{doi:10.1109/18.720545}'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ description: |
Conversely, \(GF(p)\) is an example of a \textit{subfield} of \(GF(q)\).
Certain field elements are chosen to be the \textit{basis} of \(GF(q)\) over \(GF(p)\), and all other elements are expressed as linear combinations of these basis elements.
More generally, elements of fields such as \(GF(p^{ml})\) can be written as \(m\)-dimensional vectors over \(GF(p^l)\) or \((m\times l)\)-dimensional matrices over \(GF(p)\).
This idea is used to convert between ordinary block codes and matrix-based codes.
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 \(GF(q^m)\) that are extensions of \(GF(q)\) for non-prime \(q\).
\end{defterm}
Expand Down Expand Up @@ -123,6 +123,9 @@ relations:
parents:
- code_id: rings_into_rings
detail: 'Galois fields are rings under addition.'
cousins:
- code_id: matrices_into_matrices
detail: 'Elements of fields such as \(GF(p^{ml})\) can be written as \(m\)-dimensional vectors over \(GF(p^l)\) or \((m\times l)\)-dimensional matrices over \(GF(p)\). This idea is used to convert between ordinary block codes and matrix-based codes such as disk array codes and rank-metric codes.'


# Begin Entry Meta Information
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ physical: q-ary_digits
logical: q-ary_digits

name: '\(q\)-ary sharp configuration'
introduced: '\cite{doi:10.1007/BF00053379,preset:LevBounds,arxiv:1212.1913}'
introduced: '\cite{doi:10.1007/BF00053379,preset:HPLevBounds,arxiv:1212.1913}'

description: |
A \(q\)-ary code that admits \(m\) different distances between distinct codewords and forms a design of strength \(2m-1\) or greater.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ physical: q-ary_digits
logical: q-ary_digits

name: 'Universally optimal \(q\)-ary code'
introduced: '\cite{manual:{V. I. Levenshtein. Bounds for packings of metric spaces and some of their applications. Problemy Kibernet, 40 (1983), 43-110.},doi:10.1109/18.412678,doi:10.1007/BF00053379,preset:LevBounds,doi:10.1007/s10623-016-0286-4,doi:10.1109/18.915662,arxiv:1212.1913}'
introduced: '\cite{manual:{V. I. Levenshtein. Bounds for packings of metric spaces and some of their applications. Problemy Kibernet, 40 (1983), 43-110.},doi:10.1109/18.412678,doi:10.1007/BF00053379,preset:HPLevBounds,doi:10.1007/s10623-016-0286-4,doi:10.1109/18.915662,arxiv:1212.1913}'

description: |
A binary or \(q\)-ary code that (weakly) minimizes all completely monotonic potentials on binary space \cite{arxiv:1212.1913}.
Expand All @@ -19,7 +19,7 @@ description: |
See \cite[Table 12.1]{preset:HKSbounds} (\cite[Table 1]{arxiv:1212.1913}) for a list of (LP) universally optimal codes.
See \cite[Sec. 12.4]{preset:HKSbounds} for further discussion.
All codes that attain the Levenshtein bound \cite{manual:{V. I. Levenshtein. Bounds for packings of metric spaces and some of their applications. Problemy Kibernet, 40 (1983), 43-110.},doi:10.1109/18.412678,doi:10.1007/BF00053379,preset:LevBounds}, which estimates the solution to Delsarte's linear program, are universally optimal \cite{doi:10.1007/s10623-016-0286-4}; see \cite[Thm. 12.3.23]{preset:HKSbounds}.
All codes that attain the Levenshtein bound \cite{manual:{V. I. Levenshtein. Bounds for packings of metric spaces and some of their applications. Problemy Kibernet, 40 (1983), 43-110.},doi:10.1109/18.412678,doi:10.1007/BF00053379,preset:HPLevBounds}, which estimates the solution to Delsarte's linear program, are universally optimal \cite{doi:10.1007/s10623-016-0286-4}; see \cite[Thm. 12.3.23]{preset:HKSbounds}.
However, not all universally optimal codes attain the Levenshtein bound.
Expand Down

0 comments on commit a26d254

Please sign in to comment.