diff --git a/codes/classical/q-ary_digits/ag/residueAG/goppa.yml b/codes/classical/q-ary_digits/ag/residueAG/goppa.yml index 61ce886a2..7d2985a5d 100644 --- a/codes/classical/q-ary_digits/ag/residueAG/goppa.yml +++ b/codes/classical/q-ary_digits/ag/residueAG/goppa.yml @@ -39,6 +39,8 @@ relations: - code_id: residue - code_id: cartier detail: 'Goppa codes are Cartier codes from a curve of genus zero \cite{arxiv:1206.4728}.' + - code_id: alternant + detail: 'Goppa codes are a special case of alternant codes \cite[Ch. 12]{preset:MacSlo}.' cousins: - code_id: generalized_reed_solomon detail: 'Goppa codes are \(GF(q)\)-\hyperref[topic:finite-fields]{subfield} subcode of the dual of the GRS code over \(GF(q^m)\) with evaluation points \(\alpha_i\) and factors \(v_i=G(\alpha_i)^{-1}\) (\cite{doi:10.1017/CBO9780511807077}, pg. 523; \cite{preset:HPAlgCodes}).' #alternant diff --git a/codes/classical/q-ary_digits/ag/rs/alternant.yml b/codes/classical/q-ary_digits/alternant/alternant.yml similarity index 85% rename from codes/classical/q-ary_digits/ag/rs/alternant.yml rename to codes/classical/q-ary_digits/alternant/alternant.yml index 46537f3d0..e58aebbd1 100644 --- a/codes/classical/q-ary_digits/ag/rs/alternant.yml +++ b/codes/classical/q-ary_digits/alternant/alternant.yml @@ -8,9 +8,9 @@ physical: q-ary_digits logical: q-ary_digits name: 'Alternant code' -introduced: '\cite{doi:10.1016/S0019-9958(74)80005-7}' +introduced: '\cite{doi:10.1016/S0019-9958(72)80007-X,doi:10.1016/S0019-9958(74)80005-7,doi:10.1016/S0019-9958(75)90099-6,doi:10.1109/TIT.1975.1055435}' -description: 'Given a length-\(n\) GRS code \(C\) over \(GF(q^m)\), an alternant code is the \(GF(q)\)-\hyperref[topic:finite-fields]{subfield} subcode of the dual of \(C\).' +description: 'Given a length-\(n\) GRS code \(C\) over \(GF(q^m)\), an alternant code is the \(GF(q)\)-\hyperref[topic:finite-fields]{subfield} subcode of the dual of \(C\); see \cite[Ch. 12]{preset:MacSlo}. Its parity-check matrix is an alternant matrix.' # More precisely, an \([n, k \geq n-tm, d \geq t + 1]\) code with parity check matrix with \(n\) columns and \(t\) rows of the form: # \begin{align} @@ -31,6 +31,7 @@ description: 'Given a length-\(n\) GRS code \(C\) over \(GF(q^m)\), an alternant features: decoders: - 'Variation of the Berlekamp-Welch algorithm \cite{doi:10.1109/TIT.1977.1055730}.' + - 'Euclidean algorithm; see \cite[Ch. 12]{preset:MacSlo} for more details.' - 'Guruswami-Sudan list decoder \cite{doi:10.1109/18.782097,doi:10.1109/SFCS.1998.743426}.' notes: @@ -41,7 +42,7 @@ relations: - code_id: q-ary_linear cousins: - code_id: generalized_reed_solomon - detail: 'Alternant codes are \hyperref[topic:finite-fields]{subfield} subcodes of GRS codes.' + detail: 'Alternant codes are \hyperref[topic:finite-fields]{subfield} subcodes of GRS codes \cite{doi:10.1109/TIT.1975.1055435}.' #Classic (L,G)-Goppa codes are a subclass of alternant codes, and they are also cousins of AG codes. Alternant codes as such don't qualify as cousins of AG codes. They are in fact \hyperref[topic:finite-fields]{subfield} subcodes of GRS codes and as such are cousins of BCH codes and children of GRS codes. #A \hyperref[topic:finite-fields]{subfield} subcode is a subset of the code formed of the vectors all of whose coordinates are in a \hyperref[topic:finite-fields]{subfield} (or even just a subset, they have considered subset subcodes, where this subalphabet does not have to be a field, e.g., 49 -> 46). diff --git a/codes/classical/q-ary_digits/alternant/gbch.yml b/codes/classical/q-ary_digits/alternant/gbch.yml new file mode 100644 index 000000000..ad282b508 --- /dev/null +++ b/codes/classical/q-ary_digits/alternant/gbch.yml @@ -0,0 +1,31 @@ +####################################################### +## This is a code entry in the error correction zoo. ## +## https://github.com/errorcorrectionzoo ## +####################################################### + +code_id: gbch +physical: q-ary_digits +logical: q-ary_digits + +name: 'Chien-Choy generalized BCH (GBCH) code' +short_name: 'GBCH' +introduced: '\cite{doi:10.1109/TIT.1975.1055336}' + +description: | + An \([n,k\geq n-rm, d\geq r+1]_q\) alternant code defined using two polynomials \(P(x),G(x)\) that are relatively prime to \(x^n-1\), with \(\deg P \leq n-1\) and \(r = \deg G \leq n-1\). + + See \cite[Ch. 12]{preset:MacSlo} for the parity-check matrix. + + +relations: + parents: + - code_id: alternant + detail: 'GBCH codes are a special case of alternant codes \cite[Ch. 12]{preset:MacSlo}.' + + +# Begin Entry Meta Information +_meta: + # Change log - most recent first + changelog: + - user_id: VictorVAlbert + date: '2024-08-18' diff --git a/codes/classical/q-ary_digits/alternant/generalized_srivastava.yml b/codes/classical/q-ary_digits/alternant/generalized_srivastava.yml new file mode 100644 index 000000000..bd5ebac44 --- /dev/null +++ b/codes/classical/q-ary_digits/alternant/generalized_srivastava.yml @@ -0,0 +1,37 @@ +####################################################### +## This is a code entry in the error correction zoo. ## +## https://github.com/errorcorrectionzoo ## +####################################################### + +code_id: generalized_srivastava +physical: q-ary_digits +logical: q-ary_digits + +name: 'Generalized Srivastava code' +introduced: '\cite{doi:10.1109/TIT.1972.1054760}' + +description: | + An \([n,k \geq n-mst,d \geq st+1 ]_q) alternant code defined for \(n+s\) distinct elements \(\alpha_1,\alpha_2,\cdots,\alpha_n,w_1,w_2,\cdots,w_s\) and \(n\) nonzero elements \(z_1,z_2,\cdots,z_n\) of \(GF(q^m)\). + + The code's parity-check matrix is \cite[Ch. 12]{preset:MacSlo} + \begin{align} + H=\begin{pmatrix}\frac{z_{1}}{\alpha_{1}-w_{1}} & \frac{z_{2}}{\alpha_{2}-w_{1}} & \cdots & \frac{z_{n}}{\alpha_{n}-w_{1}}\\ + \frac{z_{1}}{\left(\alpha_{1}-w_{2}\right)^{2}} & \frac{z_{2}}{\left(\alpha_{1}-w_{2}\right)^{2}} & \cdots & \frac{z_{n}}{\left(\alpha_{n}-w_{2}\right)^{2}}\\ + \vdots & \vdots & \ddots & \vdots\\ + \frac{z_{1}}{\left(\alpha_{1}-w_{s}\right)^{t}} & \frac{z_{2}}{\left(\alpha_{2}-w_{s}\right)^{t}} & \cdots & \frac{z_{n}}{\left(\alpha_{n}-w_{s}\right)^{t}} + \end{pmatrix}~. + \end{align} + + +relations: + parents: + - code_id: alternant + detail: 'Generalized Srivastava codes are a special case of alternant codes \cite[Ch. 12]{preset:MacSlo}.' + + +# Begin Entry Meta Information +_meta: + # Change log - most recent first + changelog: + - user_id: VictorVAlbert + date: '2024-08-18' diff --git a/codes/classical/q-ary_digits/group/cyclic/q-ary_bch.yml b/codes/classical/q-ary_digits/alternant/q-ary_bch.yml similarity index 95% rename from codes/classical/q-ary_digits/group/cyclic/q-ary_bch.yml rename to codes/classical/q-ary_digits/alternant/q-ary_bch.yml index b5a2db31d..8bbda64f9 100644 --- a/codes/classical/q-ary_digits/group/cyclic/q-ary_bch.yml +++ b/codes/classical/q-ary_digits/alternant/q-ary_bch.yml @@ -38,6 +38,8 @@ realizations: relations: parents: + - code_id: gbch + detail: '\(q\)-ary BCH codes are a special case of GBCH codes \cite[Ch. 12]{preset:MacSlo}.' - code_id: q-ary_cyclic - code_id: twisted_bch detail: 'Twisted BCH codes are obtained from \(q\)-ary BCH codes via various lengthening and extension procedures.' @@ -45,10 +47,11 @@ relations: - code_id: reed_solomon detail: 'BCH codes are \hyperref[topic:finite-fields]{subfield} subcodes of RS codes.' - code_id: goppa - detail: 'Narrow-sense BCH codes are Goppa codes with \(L=\{1,\alpha^{-1},\cdots,\alpha^{1-n}\}\) and \(G(x)=x^{\delta-1}\) (\cite{doi:10.1017/CBO9780511807077}, pg. 522).' + detail: 'Narrow-sense BCH codes are Goppa codes with \(L=\{1,\alpha^{-1},\cdots,\alpha^{1-n}\}\) and \(G(x)=x^{\delta-1}\) \cite[pg. 522]{doi:10.1017/CBO9780511807077}.' - code_id: q-ary_ltc detail: 'Duals of BCH codes are locally testable \cite{doi:10.1109/SFCS.2005.16}.' + # Begin Entry Meta Information _meta: # Change log - most recent first diff --git a/codes/classical/q-ary_digits/alternant/srivastava.yml b/codes/classical/q-ary_digits/alternant/srivastava.yml new file mode 100644 index 000000000..ce6954cf0 --- /dev/null +++ b/codes/classical/q-ary_digits/alternant/srivastava.yml @@ -0,0 +1,45 @@ +####################################################### +## This is a code entry in the error correction zoo. ## +## https://github.com/errorcorrectionzoo ## +####################################################### + +code_id: srivastava +physical: q-ary_digits +logical: q-ary_digits + +name: 'Srivastava code' +introduced: '\cite{doi:10.1142/9407,doi:10.1109/TIT.1972.1054760}' + +description: | + A special case of a generalized Srivastava code for \(z_j = \alpha_j^{\mu}\) for some \(\mu\) and \(t=1\). + + The code's parity-check matrix is + \begin{align} + H=\begin{pmatrix}\frac{\alpha_{1}^{\mu}}{\alpha_{1}-w_{1}} & \frac{\alpha_{2}^{\mu}}{\alpha_{2}-w_{1}} & \cdots & \frac{\alpha_{n}^{\mu}}{\alpha_{n}-w_{1}}\\ + \frac{\alpha_{1}^{\mu}}{\alpha_{1}-w_{2}} & \frac{\alpha_{2}^{\mu}}{\alpha_{1}-w_{2}} & \cdots & \frac{\alpha_{n}^{\mu}}{\alpha_{n}-w_{2}}\\ + \vdots & \vdots & \ddots & \vdots\\ + \frac{\alpha_{1}^{\mu}}{\alpha_{1}-w_{s}} & \frac{\alpha_{2}^{\mu}}{\alpha_{2}-w_{s}} & \cdots & \frac{\alpha_{n}^{\mu}}{\alpha_{n}-w_{s}} + \end{pmatrix}~. + \end{align} + +protection: | + Dimension and minimum distance are found in Refs. \cite{doi:10.1109/TIT.1972.1054760,doi:10.1016/S0019-9958(72)80007-X}. + + +relations: + parents: + - code_id: generalized_srivastava + detail: 'A Srivastava code is a special case of a generalized Srivastava code for \(z_j = \alpha_j^{\mu}\) for some \(\mu\) and \(t=1\).' + - code_id: goppa + detail: 'Generalized Srivastava codes are a special case of Goppa codes \cite[Ch. 12]{preset:MacSlo}.' + - code_id: gbch + detail: 'Generalized Srivastava codes are a special case of GBCH codes \cite[Ch. 12]{preset:MacSlo}.' + + + +# Begin Entry Meta Information +_meta: + # Change log - most recent first + changelog: + - user_id: VictorVAlbert + date: '2024-08-18'