diff --git a/codes/classical/bits/easy/checksum.yml b/codes/classical/bits/easy/checksum.yml deleted file mode 100644 index 13fad667a..000000000 --- a/codes/classical/bits/easy/checksum.yml +++ /dev/null @@ -1,28 +0,0 @@ -####################################################### -## This is a code entry in the error correction zoo. ## -## https://github.com/errorcorrectionzoo ## -####################################################### - -code_id: checksum -physical: bits -logical: bits - -name: 'checksum code' -#introduced: '' - -description: | - Checksum is an error detection code that makes use of dividing data into equal subunits of n bit lengths of up to 16-bit lengths. A checksum is generated utilizing the complement of the sum of n bits from the subunits and then appended to the end of the data unit. The process is reiterated on the receiver side, if the result is zero the data is error-free, if not the data is rejected. Checksum catches error bursts up to 16 bits but fails to catch transpositions and insertion/deletion of zeros. -realizations: - - 'Used for error detection in internet protocols such as IP,TCP, and UDP' - - 'Typically strongers error detection algorithms, such as Cyclic Redundancy Check, are used first and checksum is the last check in end-to-end protocols \cite{doi:10.1016/C2010-0-65846-9}' -relations: - parents: - - code_id: parity_check - - -# Begin Entry Meta Information -_meta: - # Change log - most recent first - changelog: - - user_id: GageErwin - date: '2023-08-11' diff --git a/codes/classical/bits/easy/crc.yml b/codes/classical/bits/easy/crc.yml new file mode 100644 index 000000000..cfa765c4f --- /dev/null +++ b/codes/classical/bits/easy/crc.yml @@ -0,0 +1,45 @@ +####################################################### +## This is a code entry in the error correction zoo. ## +## https://github.com/errorcorrectionzoo ## +####################################################### + +code_id: crc +physical: bits +logical: bits + +name: 'Cyclic redundancy check (CRC) code' +short_name: 'CRC' +introduced: '\cite{doi:10.1109/JRPROC.1961.287814,preset:PetersonWeldon,preset:LinCostello}' + +alternative_names: + - 'Frame check sequence (FCS)' + +description: | + A generalization of the single parity-check code in which the generalization of the parity bit is the remainder of the data string (mapped into a polynomial via the \ref{topic:Cyclic-to-polynomial-correspondence}) divided by some generator polynomial. + A notable family of codes is referred to as \textit{CRC-}\(m-1\), where \(m\) is the length of the generator polynomial. + +protection: 'Detects any ''burst'' error up to the length of the generator polynomial.' + +realizations: + - 'CRC-16 and CRC-32 are used in data transmission, e.g., IEEE 802.16e, IEEE 802.3 \cite{manual:{Borrelli, Chris. "IEEE 802.3 cyclic redundancy check." application note: Virtex Series and Virtex-II Family, XAPP209 (v1. 0) (2001).}} and TCP/IP communication cite[Sec. 2.3.3]{doi:10.1007/978-0-387-68192-4_2}.' + +notes: + - 'See Ref. \cite{doi:10.1109/CICN.2015.108} and book \cite{manual:{Wells, Richard B. Applied coding and information theory for engineers. Prentice-Hall, Inc., 1998.}} for introductions to CRC codes.' + - 'See Refs. \cite{doi:10.1109/DSN.2002.1028931,doi:10.1109/DSN.2004.1311885} for exhaustive lists of CRC polynomials, as well as the \href{https://users.ece.cmu.edu/~koopman/crc/crc32.html}{CRC Polynomial Zoo website} by Philip Koopman.' + +relations: + parents: + - code_id: binary_cyclic + cousins: + - code_id: polar + detail: 'CRC codes concataned with polar codes yield improved performance of the SCL polar-code decoder \cite{doi:10.1109/LCOMM.2012.111612.121898,doi:10.1109/TIT.2015.2410251}.' + + +# Begin Entry Meta Information +_meta: + # Change log - most recent first + changelog: + - user_id: VictorVAlbert + date: '2024-02-25' + - user_id: GageErwin + date: '2023-08-11' diff --git a/codes/classical/bits/easy/parity_check.yml b/codes/classical/bits/easy/parity_check.yml index a0eee1c6f..15f605daa 100644 --- a/codes/classical/bits/easy/parity_check.yml +++ b/codes/classical/bits/easy/parity_check.yml @@ -10,7 +10,14 @@ logical: bits name: 'Single parity-check (SPC) code' short_name: 'SPC' -description: 'Also known as a \textit{sum-zero}, \textit{zero-sum}, or \textit{even-weight} code. An \([n,n-1,2]\) linear binary code whose codewords consist of the message string appended with a parity-check bit such that the parity (i.e., sum over all coordinates of each codeword) is zero. If the Hamming weight of a message is odd (even), then the parity bit is one (zero). This code requires only one extra bit of overhead and is therefore inexpensive.' +alternative_names: + - 'Sum-zero code' + - 'Zero-sum code' + - 'Even-weight code' + +description: | + An \([n,n-1,2]\) linear binary code whose codewords consist of the message string appended with a \textit{parity-check bit} or \textit{parity bit} such that the parity (i.e., sum over all coordinates of each codeword) is zero. + If the Hamming weight of a message is odd (even), then the parity bit is one (zero). This code requires only one extra bit of overhead and is therefore inexpensive.' protection: 'This code cannot protect information, it can only detect 1-bit error.' @@ -26,10 +33,10 @@ realizations: relations: parents: - - code_id: binary_cyclic - detail: 'Since permutations preserve parity, the cyclic permutation of an SPC codeword is another codeword. The generator polynomial of the code is \(x-1\).' - - code_id: q-ary_parity_check + - code_id: crc + detail: 'A CRC using the divisor 11 is a single parity-check code \cite[Sec. 2.3.3]{doi:10.1007/978-0-387-68192-4_2}.' - code_id: reed_muller + - code_id: q-ary_parity_check detail: 'RM\((m-1,m)\) are parity-check codes.' - code_id: nearly_perfect - code_id: mds @@ -45,6 +52,9 @@ relations: - code_id: ldgm detail: 'Concatenated SPCs are LDGM \cite{doi:10.1109/20.917609}.' +# - code_id: binary_cyclic +# detail: 'Since permutations preserve parity, the cyclic permutation of an SPC codeword is another codeword. The generator polynomial of the code is \(x-1\).' + # Begin Entry Meta Information _meta: diff --git a/codes/quantum/qubits/subsystem/subsystem_product.yml b/codes/quantum/qubits/subsystem/subsystem_product.yml index dc3e68516..c77f9f97d 100644 --- a/codes/quantum/qubits/subsystem/subsystem_product.yml +++ b/codes/quantum/qubits/subsystem/subsystem_product.yml @@ -8,6 +8,7 @@ physical: qubits logical: qubits name: 'Subsystem product (SP) code' +short_name: 'SP' introduced: '\cite{arXiv:2007.12152}'