Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Reed-Solomon Codes over Cyclic Polynomial Ring with Lower Encoding/Decoding Complexity

Wenhao Liu§, Zhengyi Jiang§, Zhongyi Huang§  Linqi Song, Hanxu Hou
§ Department of Mathematical Sciences, Tsinghua University
Department of Computer Science, City University of Hong Kong
Dongguan University of Technology
Abstract
000: Corresponding author. This work was partially supported by the Key-Area Research and Development Program of Guangdong Province 2020B0101110003, National Key R&D Program of China (No. 2020YFA0712300), the National Natural Science Foundation of China (No. 62071121, 62371411, 12025104), Basic Research Enhancement Program of China under Grant 2021-JCJQ-JJ-0483.

Reed-Solomon (RS) codes are constructed over a finite field that have been widely employed in storage and communication systems. Many fast encoding/decoding algorithms such as fast Fourier transform (FFT) and modular approach are designed for RS codes to reduce the encoding/decoding complexity defined as the number of XORs involved in the encoding/decoding procedure. In this paper, we present the construction of RS codes over the cyclic polynomial ring 𝔽2[x]/(1+x++xp1)subscript𝔽2delimited-[]𝑥1𝑥superscript𝑥𝑝1\mathbb{F}_{2}[x]/(1+x+\ldots+x^{p-1})blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( 1 + italic_x + … + italic_x start_POSTSUPERSCRIPT italic_p - 1 end_POSTSUPERSCRIPT ) and show that our codes are maximum distance separable (MDS) codes. Moreover, we propose the FFT and modular approach over the ring that can be employed in our codes for encoding/decoding complexity reduction. We show that our codes have 17.9% encoding complexity reduction and 7.5% decoding complexity reduction compared with RS codes over finite field, for (n,k)=(2048,1984)𝑛𝑘20481984(n,k)=(2048,1984)( italic_n , italic_k ) = ( 2048 , 1984 ).

I Introduction

Reed-Solomon (RS) codes are a class of maximum distance separable (MDS) codes that have been widely employed in communication and storage systems [1]. An (n,k)𝑛𝑘(n,k)( italic_n , italic_k ) RS code encodes k𝑘kitalic_k data symbols to obtain the n𝑛nitalic_n codeword symbols over the field 𝔽2qsubscript𝔽superscript2𝑞\mathbb{F}_{2^{q}}blackboard_F start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_q end_POSTSUPERSCRIPT end_POSTSUBSCRIPT, where n,k,q𝑛𝑘𝑞n,k,qitalic_n , italic_k , italic_q are positive integers, n>k𝑛𝑘n>kitalic_n > italic_k and n2q𝑛superscript2𝑞n\leq 2^{q}italic_n ≤ 2 start_POSTSUPERSCRIPT italic_q end_POSTSUPERSCRIPT. In general, we can construct RS codes by choosing the Vandermonde matrix as generator matrix and the codes are MDS if and only if n2q𝑛superscript2𝑞n\leq 2^{q}italic_n ≤ 2 start_POSTSUPERSCRIPT italic_q end_POSTSUPERSCRIPT.

Encoding/decoding complexity defined as the total number of XORs involved in the encoding/decoding (error correction) procedure is the key metric for RS codes. Field addition and field multiplication are two basic operations in the encoding/decoding procedure, where one field addition over 𝔽2qsubscript𝔽superscript2𝑞\mathbb{F}_{2^{q}}blackboard_F start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_q end_POSTSUPERSCRIPT end_POSTSUBSCRIPT requires q𝑞qitalic_q XORs and one field multiplication over 𝔽2qsubscript𝔽superscript2𝑞\mathbb{F}_{2^{q}}blackboard_F start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_q end_POSTSUPERSCRIPT end_POSTSUBSCRIPT requires much more XORs. Many fast encoding/decoding algorithms [2, 3, 4, 5, 6, 7, 8, 9, 10] have been proposed for encoding/decoding complexity reduction. We can divide the existing fast encoding/decoding algorithms into two methods. One method is to reduce the number of basic field operations, including addition and multiplication operations, such as [2, 3, 4, 5]. To the best of our knowledge, the fast Fourier transform (FFT) and modular approach [4] achieve the best asymptotic number of field operations, where the number of field operations involved in encoding procedure is O(nlog(nk))𝑂𝑛𝑛𝑘O(n\log(n-k))italic_O ( italic_n roman_log ( italic_n - italic_k ) ) and the number of field operations involved in decoding procedure is O(nlog(nk)+(nk)log2(nk))𝑂𝑛𝑛𝑘𝑛𝑘superscript2𝑛𝑘O(n\log(n-k)+(n-k)\log^{2}(n-k))italic_O ( italic_n roman_log ( italic_n - italic_k ) + ( italic_n - italic_k ) roman_log start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ( italic_n - italic_k ) ). Another method [6, 7, 8, 9, 10] is to construct RS codes over the cyclic polynomial ring 𝔽2[x]/(1+x++xp1)subscript𝔽2delimited-[]𝑥1𝑥superscript𝑥𝑝1\mathbb{F}_{2}[x]/(1+x+\ldots+x^{p-1})blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( 1 + italic_x + … + italic_x start_POSTSUPERSCRIPT italic_p - 1 end_POSTSUPERSCRIPT ) or more general ring that can avoid the expensive field multiplication. We will present new fast encoding/decoding algorithms for RS codes by jointly considering the above two methods.

The main contributions of the paper are summarized as follows. First, we propose RS codes over the cyclic polynomial ring 𝔽2[x]/(1+x++xp1)subscript𝔽2delimited-[]𝑥1𝑥superscript𝑥𝑝1\mathbb{F}_{2}[x]/(1+x+\ldots+x^{p-1})blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( 1 + italic_x + … + italic_x start_POSTSUPERSCRIPT italic_p - 1 end_POSTSUPERSCRIPT ) and show that our codes are MDS codes. Second, we propose fast encoding/decoding algorithms for our codes by employing the FFT and modular approach over the ring 𝔽2[x]/(1+x++xp1)subscript𝔽2delimited-[]𝑥1𝑥superscript𝑥𝑝1\mathbb{F}_{2}[x]/(1+x+\ldots+x^{p-1})blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( 1 + italic_x + … + italic_x start_POSTSUPERSCRIPT italic_p - 1 end_POSTSUPERSCRIPT ) in the encoding/decoding procedure. We show that our codes can achieve the best asymptotic number of field operations required in the encoding/decoding procedure. Third, we evaluate the encoding/decoding complexity for our codes and the RS codes over finite field to show that our codes have lower encoding/decoding complexity. Specifically, our codes can reduce 17.9%percent17.917.9\%17.9 % encoding complexity and 7.5%percent7.57.5\%7.5 % decoding complexity compared with RS codes over the field 𝔽211subscript𝔽superscript211\mathbb{F}_{2^{11}}blackboard_F start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT 11 end_POSTSUPERSCRIPT end_POSTSUBSCRIPT with the fast encoding/decoding algorithms in [4], for (n,k)=(2048,1984)𝑛𝑘20481984(n,k)=(2048,1984)( italic_n , italic_k ) = ( 2048 , 1984 ).

II RS Codes over Cyclic Polynomial Ring

In this section, we present the construction of our RS codes over the cyclic polynomial ring 𝔽2[x]/(1+x++xp1)subscript𝔽2delimited-[]𝑥1𝑥superscript𝑥𝑝1\mathbb{F}_{2}[x]/(1+x+\ldots+x^{p-1})blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( 1 + italic_x + … + italic_x start_POSTSUPERSCRIPT italic_p - 1 end_POSTSUPERSCRIPT ), where p𝑝pitalic_p is an odd number. Then we show our codes are MDS codes. Throughout the paper, we use the notation Mp(x)=1+x++xp1subscript𝑀𝑝𝑥1𝑥superscript𝑥𝑝1M_{p}(x)=1+x+\ldots+x^{p-1}italic_M start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ( italic_x ) = 1 + italic_x + … + italic_x start_POSTSUPERSCRIPT italic_p - 1 end_POSTSUPERSCRIPT and [t]={1,2,,t}delimited-[]𝑡12𝑡[t]=\{1,2,\ldots,t\}[ italic_t ] = { 1 , 2 , … , italic_t } for positive integer t𝑡titalic_t. Let |S|𝑆|S|| italic_S | be the number of elements in set S𝑆Sitalic_S.

II-A Construction

We denote the ring 𝔽2[x]/(Mp(x))subscript𝔽2delimited-[]𝑥subscript𝑀𝑝𝑥\mathbb{F}_{2}[x]/(M_{p}(x))blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( italic_M start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ( italic_x ) ) by psubscript𝑝\mathcal{R}_{p}caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT and our codes are operated over psubscript𝑝\mathcal{R}_{p}caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT, where p𝑝pitalic_p is an odd number. We can factorize Mp(x)subscript𝑀𝑝𝑥M_{p}(x)italic_M start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ( italic_x ) as a product of t𝑡titalic_t distinct irreducible polynomials over 𝔽2subscript𝔽2\mathbb{F}_{2}blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT, i.e.,

Mp(x)=i=1tpi(x),subscript𝑀𝑝𝑥superscriptsubscriptproduct𝑖1𝑡subscript𝑝𝑖𝑥M_{p}(x)=\prod\limits_{i=1}^{t}p_{i}(x),italic_M start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ( italic_x ) = ∏ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_t end_POSTSUPERSCRIPT italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) ,

where t1𝑡1t\geq 1italic_t ≥ 1 and pi(x)𝔽2[x]subscript𝑝𝑖𝑥subscript𝔽2delimited-[]𝑥p_{i}(x)\in\mathbb{F}_{2}[x]italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) ∈ blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] for i[t]𝑖delimited-[]𝑡i\in[t]italic_i ∈ [ italic_t ].

By the Chinese remainder theorem, the ring psubscript𝑝\mathcal{R}_{p}caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT is isomorphic to the direct sum of the t𝑡titalic_t fields 𝔽2[x]/(p1(x))subscript𝔽2delimited-[]𝑥subscript𝑝1𝑥\mathbb{F}_{2}[x]/(p_{1}(x))blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( italic_p start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( italic_x ) ), 𝔽2[x]/(p2(x))subscript𝔽2delimited-[]𝑥subscript𝑝2𝑥\mathbb{F}_{2}[x]/(p_{2}(x))blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( italic_p start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( italic_x ) ), \ldots, 𝔽2[x]/(pt(x))subscript𝔽2delimited-[]𝑥subscript𝑝𝑡𝑥\mathbb{F}_{2}[x]/(p_{t}(x))blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( italic_p start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ( italic_x ) ) [11, Theorem 6]. The isomorphism Φ:p:Φsubscript𝑝absent\Phi:\mathcal{R}_{p}\rightarrowroman_Φ : caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT →
(𝔽2[x]/(p1(x)),,𝔽2[x]/(pt(x)))subscript𝔽2delimited-[]𝑥subscript𝑝1𝑥subscript𝔽2delimited-[]𝑥subscript𝑝𝑡𝑥(\mathbb{F}_{2}[x]/(p_{1}(x)),\ldots,\mathbb{F}_{2}[x]/(p_{t}(x)))( blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( italic_p start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( italic_x ) ) , … , blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( italic_p start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ( italic_x ) ) ) is defined by

Φ(r(x))=(r(x)modp1(x),,r(x)modpt(x)),Φ𝑟𝑥modulo𝑟𝑥subscript𝑝1𝑥modulo𝑟𝑥subscript𝑝𝑡𝑥\displaystyle\Phi(r(x))=(r(x)\bmod p_{1}(x),\ldots,r(x)\bmod p_{t}(x)),roman_Φ ( italic_r ( italic_x ) ) = ( italic_r ( italic_x ) roman_mod italic_p start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( italic_x ) , … , italic_r ( italic_x ) roman_mod italic_p start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ( italic_x ) ) , (1)

where r(x)p𝑟𝑥subscript𝑝r(x)\in\mathcal{R}_{p}italic_r ( italic_x ) ∈ caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT. For element rp𝑟subscript𝑝r\in\mathcal{R}_{p}italic_r ∈ caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT, denote the i𝑖iitalic_i-th component of Φ(r)Φ𝑟\Phi(r)roman_Φ ( italic_r ) as r(i)superscript𝑟𝑖r^{(i)}italic_r start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT, i.e., Φ(r)=(r(1),r(2),,r(t))Φ𝑟superscript𝑟1superscript𝑟2superscript𝑟𝑡\Phi(r)=(r^{(1)},r^{(2)},\ldots,r^{(t)})roman_Φ ( italic_r ) = ( italic_r start_POSTSUPERSCRIPT ( 1 ) end_POSTSUPERSCRIPT , italic_r start_POSTSUPERSCRIPT ( 2 ) end_POSTSUPERSCRIPT , … , italic_r start_POSTSUPERSCRIPT ( italic_t ) end_POSTSUPERSCRIPT ). We can directly obtain the following result without proof.

Lemma 1.

The polynomial r(x)p𝑟𝑥subscript𝑝r(x)\in\mathcal{R}_{p}italic_r ( italic_x ) ∈ caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT is invertible if and only if i[t],r(x)0(modpi(x))formulae-sequencefor-all𝑖delimited-[]𝑡not-equivalent-to𝑟𝑥annotated0𝑝𝑚𝑜𝑑subscript𝑝𝑖𝑥\forall i\in[t],r(x)\not\equiv 0\pmod{p_{i}(x)}∀ italic_i ∈ [ italic_t ] , italic_r ( italic_x ) ≢ 0 start_MODIFIER ( roman_mod start_ARG italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) end_ARG ) end_MODIFIER.

Next, we provide the definition of our (n=2m,k=2m2μ)formulae-sequence𝑛superscript2𝑚𝑘superscript2𝑚superscript2𝜇(n=2^{m},k=2^{m}-2^{\mu})( italic_n = 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT , italic_k = 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT - 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT ) RS codes over psubscript𝑝\mathcal{R}_{p}caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT, where m=gcd(deg(p1(x)),,deg(pt(x)))𝑚degreesubscript𝑝1𝑥degreesubscript𝑝𝑡𝑥m=\gcd(\deg(p_{1}(x)),\ldots,\deg(p_{t}(x)))italic_m = roman_gcd ( roman_deg ( italic_p start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( italic_x ) ) , … , roman_deg ( italic_p start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ( italic_x ) ) ) and μ{0,1,,m1}𝜇01𝑚1\mu\in\{0,1,\ldots,m-1\}italic_μ ∈ { 0 , 1 , … , italic_m - 1 }.

For i=1,2,,t𝑖12𝑡i=1,2,\ldots,titalic_i = 1 , 2 , … , italic_t, since |𝔽2[x]/(pi(x))|=2deg(pi)subscript𝔽2delimited-[]𝑥subscript𝑝𝑖𝑥superscript2degreesubscript𝑝𝑖\lvert\mathbb{F}_{2}[x]/(p_{i}(x))\rvert=2^{\deg(p_{i})}| blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) ) | = 2 start_POSTSUPERSCRIPT roman_deg ( italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) end_POSTSUPERSCRIPT and mdeg(pi)conditional𝑚degreesubscript𝑝𝑖m\mid\deg(p_{i})italic_m ∣ roman_deg ( italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ), there exists a unique subfield of size 2msuperscript2𝑚2^{m}2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT in 𝔽2[x]/(pi(x))subscript𝔽2delimited-[]𝑥subscript𝑝𝑖𝑥\mathbb{F}_{2}[x]/(p_{i}(x))blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) ). We choose a basis of the subfield and denote it as {vj(i)}j=0,1,,m1subscriptsuperscriptsubscript𝑣𝑗𝑖𝑗01𝑚1\{v_{j}^{(i)}\}_{j=0,1,\ldots,m-1}{ italic_v start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT } start_POSTSUBSCRIPT italic_j = 0 , 1 , … , italic_m - 1 end_POSTSUBSCRIPT. For j=0,1,,m1𝑗01𝑚1j=0,1,\ldots,m-1italic_j = 0 , 1 , … , italic_m - 1, let vj=Φ1(vj(1),vj(2),,vj(t))subscript𝑣𝑗superscriptΦ1superscriptsubscript𝑣𝑗1superscriptsubscript𝑣𝑗2superscriptsubscript𝑣𝑗𝑡v_{j}=\Phi^{-1}(v_{j}^{(1)},v_{j}^{(2)},\ldots,v_{j}^{(t)})italic_v start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT = roman_Φ start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( italic_v start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( 1 ) end_POSTSUPERSCRIPT , italic_v start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( 2 ) end_POSTSUPERSCRIPT , … , italic_v start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_t ) end_POSTSUPERSCRIPT ), where Φ1superscriptΦ1\Phi^{-1}roman_Φ start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT is the inverse mapping of ΦΦ\Phiroman_Φ which is in Eq. (1). For l=0,1,,2m1𝑙01superscript2𝑚1l=0,1,\ldots,2^{m}-1italic_l = 0 , 1 , … , 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT - 1, define

ωl=l0v0+l1v1++lm1vm1,subscript𝜔𝑙subscript𝑙0subscript𝑣0subscript𝑙1subscript𝑣1subscript𝑙𝑚1subscript𝑣𝑚1\omega_{l}=l_{0}v_{0}+l_{1}v_{1}+\ldots+l_{m-1}v_{m-1},italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT = italic_l start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT italic_v start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_l start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_v start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + … + italic_l start_POSTSUBSCRIPT italic_m - 1 end_POSTSUBSCRIPT italic_v start_POSTSUBSCRIPT italic_m - 1 end_POSTSUBSCRIPT , (2)

where l0,l1,,lm1{0,1}subscript𝑙0subscript𝑙1subscript𝑙𝑚101l_{0},l_{1},\ldots,l_{m-1}\in\{0,1\}italic_l start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_l start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_l start_POSTSUBSCRIPT italic_m - 1 end_POSTSUBSCRIPT ∈ { 0 , 1 } and (l0,l1,,lm1)subscript𝑙0subscript𝑙1subscript𝑙𝑚1(l_{0},l_{1},\ldots,l_{m-1})( italic_l start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_l start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_l start_POSTSUBSCRIPT italic_m - 1 end_POSTSUBSCRIPT ) is the binary representation of l𝑙litalic_l.

Given the k𝑘kitalic_k data symbols g0,g1,,gk1psubscript𝑔0subscript𝑔1subscript𝑔𝑘1subscript𝑝g_{0},g_{1},\ldots,g_{k-1}\in\mathcal{R}_{p}italic_g start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_g start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_g start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ∈ caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT, we will proof in Theorem 2 that there exists a polynomial f(x)=i=0k1fixip[x]𝑓𝑥superscriptsubscript𝑖0𝑘1subscript𝑓𝑖superscript𝑥𝑖subscript𝑝delimited-[]𝑥f(x)=\sum_{i=0}^{k-1}f_{i}x^{i}\in\mathcal{R}_{p}[x]italic_f ( italic_x ) = ∑ start_POSTSUBSCRIPT italic_i = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_k - 1 end_POSTSUPERSCRIPT italic_f start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_x start_POSTSUPERSCRIPT italic_i end_POSTSUPERSCRIPT ∈ caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT [ italic_x ] such that f(ω2μ+i)=gi𝑓subscript𝜔superscript2𝜇𝑖subscript𝑔𝑖f(\omega_{2^{\mu}+i})=g_{i}italic_f ( italic_ω start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT + italic_i end_POSTSUBSCRIPT ) = italic_g start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT for i=0,1,,k1𝑖01𝑘1i=0,1,\ldots,k-1italic_i = 0 , 1 , … , italic_k - 1 and we define the n𝑛nitalic_n codeword symbols as

(f(ω0),f(ω1),,f(ωn1)),𝑓subscript𝜔0𝑓subscript𝜔1𝑓subscript𝜔𝑛1(f(\omega_{0}),f(\omega_{1}),\ldots,f(\omega_{n-1})),( italic_f ( italic_ω start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) , italic_f ( italic_ω start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) , … , italic_f ( italic_ω start_POSTSUBSCRIPT italic_n - 1 end_POSTSUBSCRIPT ) ) ,

thus our codes are systematic codes. The codes defined above can be viewed as replacing the data symbols with {fi}i=0k1superscriptsubscriptsubscript𝑓𝑖𝑖0𝑘1\{f_{i}\}_{i=0}^{k-1}{ italic_f start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT } start_POSTSUBSCRIPT italic_i = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_k - 1 end_POSTSUPERSCRIPT and constructing codes by the generator matrix

(111ω0ω1ωn1ω0k1ω1k1ωn1k1).matrix111subscript𝜔0subscript𝜔1subscript𝜔𝑛1superscriptsubscript𝜔0𝑘1superscriptsubscript𝜔1𝑘1superscriptsubscript𝜔𝑛1𝑘1\begin{pmatrix}1&1&\cdots&1\\ \omega_{0}&\omega_{1}&\cdots&\omega_{n-1}\\ \vdots&\vdots&\ddots&\vdots\\ \omega_{0}^{k-1}&\omega_{1}^{k-1}&\cdots&\omega_{n-1}^{k-1}\end{pmatrix}.( start_ARG start_ROW start_CELL 1 end_CELL start_CELL 1 end_CELL start_CELL ⋯ end_CELL start_CELL 1 end_CELL end_ROW start_ROW start_CELL italic_ω start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_CELL start_CELL italic_ω start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL ⋯ end_CELL start_CELL italic_ω start_POSTSUBSCRIPT italic_n - 1 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL ⋮ end_CELL start_CELL ⋮ end_CELL start_CELL ⋱ end_CELL start_CELL ⋮ end_CELL end_ROW start_ROW start_CELL italic_ω start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_k - 1 end_POSTSUPERSCRIPT end_CELL start_CELL italic_ω start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_k - 1 end_POSTSUPERSCRIPT end_CELL start_CELL ⋯ end_CELL start_CELL italic_ω start_POSTSUBSCRIPT italic_n - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_k - 1 end_POSTSUPERSCRIPT end_CELL end_ROW end_ARG ) . (3)

For l=0,1,,n1𝑙01𝑛1l=0,1,\ldots,n-1italic_l = 0 , 1 , … , italic_n - 1, denote Φ(ωl)=(ωl(1),ωl(2),,ωl(t))Φsubscript𝜔𝑙superscriptsubscript𝜔𝑙1superscriptsubscript𝜔𝑙2superscriptsubscript𝜔𝑙𝑡\Phi(\omega_{l})=(\omega_{l}^{(1)},\omega_{l}^{(2)},\ldots,\omega_{l}^{(t)})roman_Φ ( italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ) = ( italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( 1 ) end_POSTSUPERSCRIPT , italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( 2 ) end_POSTSUPERSCRIPT , … , italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_t ) end_POSTSUPERSCRIPT ). We can compute that ωl(i)=l0v0(i)+l1v1(i)++lm1vm1(i)superscriptsubscript𝜔𝑙𝑖subscript𝑙0superscriptsubscript𝑣0𝑖subscript𝑙1superscriptsubscript𝑣1𝑖subscript𝑙𝑚1superscriptsubscript𝑣𝑚1𝑖\omega_{l}^{(i)}=l_{0}v_{0}^{(i)}+l_{1}v_{1}^{(i)}+\ldots+l_{m-1}v_{m-1}^{(i)}italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT = italic_l start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT italic_v start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT + italic_l start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_v start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT + … + italic_l start_POSTSUBSCRIPT italic_m - 1 end_POSTSUBSCRIPT italic_v start_POSTSUBSCRIPT italic_m - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT, where i=1,2,,t𝑖12𝑡i=1,2,\ldots,titalic_i = 1 , 2 , … , italic_t and (l0,l1,,lm1)subscript𝑙0subscript𝑙1subscript𝑙𝑚1(l_{0},l_{1},\ldots,l_{m-1})( italic_l start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_l start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_l start_POSTSUBSCRIPT italic_m - 1 end_POSTSUBSCRIPT ) is the binary representation of l𝑙litalic_l. The next theorem shows that our codes are well-defined and are MDS codes.

Theorem 2.

Our codes are well-defined and are MDS codes.

Proof:

Firstly, we proof that the determinant of any k×k𝑘𝑘k\times kitalic_k × italic_k submatrix of the generator matrix in Eq. (3) is invertible in psubscript𝑝\mathcal{R}_{p}caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT. This is equivalent to show that the determinant

0l<tk1(ωjlωjt)subscriptproduct0𝑙𝑡𝑘1subscript𝜔subscript𝑗𝑙subscript𝜔subscript𝑗𝑡\prod\limits_{0\leq l<t\leq k-1}(\omega_{j_{l}}-\omega_{j_{t}})∏ start_POSTSUBSCRIPT 0 ≤ italic_l < italic_t ≤ italic_k - 1 end_POSTSUBSCRIPT ( italic_ω start_POSTSUBSCRIPT italic_j start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT end_POSTSUBSCRIPT - italic_ω start_POSTSUBSCRIPT italic_j start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT end_POSTSUBSCRIPT )

is invertible in psubscript𝑝\mathcal{R}_{p}caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT, where 0j0j1jk1n10subscript𝑗0subscript𝑗1subscript𝑗𝑘1𝑛10\leq j_{0}\leq j_{1}\leq\cdots\leq j_{k-1}\leq n-10 ≤ italic_j start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ≤ italic_j start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ≤ ⋯ ≤ italic_j start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ≤ italic_n - 1. And it is equivalent to proof that 0i<jn1for-all 0𝑖𝑗𝑛1\forall\ 0\ \leq i<j\leq{n-1}∀ 0 ≤ italic_i < italic_j ≤ italic_n - 1, ωiωjsubscript𝜔𝑖subscript𝜔𝑗\omega_{i}-\omega_{j}italic_ω start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT - italic_ω start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT is invertible in psubscript𝑝\mathcal{R}_{p}caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT. For any jk𝑗𝑘j\neq kitalic_j ≠ italic_k, we can show

ωjωkωj(i)ωk(i)0(modpi(x)),i[t],formulae-sequencesubscript𝜔𝑗subscript𝜔𝑘superscriptsubscript𝜔𝑗𝑖superscriptsubscript𝜔𝑘𝑖not-equivalent-toannotated0pmodsubscript𝑝𝑖𝑥for-all𝑖delimited-[]𝑡\omega_{j}-\omega_{k}\equiv\omega_{j}^{(i)}-\omega_{k}^{(i)}\not\equiv 0\pmod{% p_{i}(x)},\forall i\in[t],italic_ω start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT - italic_ω start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ≡ italic_ω start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT - italic_ω start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ≢ 0 start_MODIFIER ( roman_mod start_ARG italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) end_ARG ) end_MODIFIER , ∀ italic_i ∈ [ italic_t ] ,

by the fact that the binary representations of j𝑗jitalic_j and k𝑘kitalic_k are different and v0(i),v1(i),,vm1(i)superscriptsubscript𝑣0𝑖superscriptsubscript𝑣1𝑖superscriptsubscript𝑣𝑚1𝑖v_{0}^{(i)},v_{1}^{(i)},\ldots,v_{m-1}^{(i)}italic_v start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , italic_v start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , … , italic_v start_POSTSUBSCRIPT italic_m - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT are linearly independent for any i[t]𝑖delimited-[]𝑡i\in[t]italic_i ∈ [ italic_t ]. Therefore, ωjωksubscript𝜔𝑗subscript𝜔𝑘\omega_{j}-\omega_{k}italic_ω start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT - italic_ω start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT is invertible by Lemma 1, and the determinant of any k×k𝑘𝑘k\times kitalic_k × italic_k submatrix of the generator matrix in Eq. (3) is invertible in psubscript𝑝\mathcal{R}_{p}caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT.

Given the k𝑘kitalic_k data symbols g0,g1,,gk1psubscript𝑔0subscript𝑔1subscript𝑔𝑘1subscript𝑝g_{0},g_{1},\ldots,g_{k-1}\in\mathcal{R}_{p}italic_g start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_g start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_g start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ∈ caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT, finding a polynomial f(x)=i=0k1fixip[x]𝑓𝑥superscriptsubscript𝑖0𝑘1subscript𝑓𝑖superscript𝑥𝑖subscript𝑝delimited-[]𝑥f(x)=\sum_{i=0}^{k-1}f_{i}x^{i}\in\mathcal{R}_{p}[x]italic_f ( italic_x ) = ∑ start_POSTSUBSCRIPT italic_i = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_k - 1 end_POSTSUPERSCRIPT italic_f start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_x start_POSTSUPERSCRIPT italic_i end_POSTSUPERSCRIPT ∈ caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT [ italic_x ] such that f(ω2μ+i)=gi𝑓subscript𝜔superscript2𝜇𝑖subscript𝑔𝑖f(\omega_{2^{\mu}+i})=g_{i}italic_f ( italic_ω start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT + italic_i end_POSTSUBSCRIPT ) = italic_g start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT for i=0,1,,k1𝑖01𝑘1i=0,1,\ldots,k-1italic_i = 0 , 1 , … , italic_k - 1 is equivalent to solving the equation

(f0f1fk1)T(111ωnkωnk+1ωn1ωnkk1ωnk+1k1ωn1k1)=(g0g1gk1).superscriptmatrixsubscript𝑓0subscript𝑓1subscript𝑓𝑘1𝑇matrix111subscript𝜔𝑛𝑘subscript𝜔𝑛𝑘1subscript𝜔𝑛1superscriptsubscript𝜔𝑛𝑘𝑘1superscriptsubscript𝜔𝑛𝑘1𝑘1superscriptsubscript𝜔𝑛1𝑘1matrixsubscript𝑔0subscript𝑔1subscript𝑔𝑘1\begin{pmatrix}f_{0}\\ f_{1}\\ \vdots\\ f_{k-1}\end{pmatrix}^{T}\begin{pmatrix}1&1&\cdots&1\\ \omega_{n-k}&\omega_{n-k+1}&\cdots&\omega_{n-1}\\ \vdots&\vdots&\ddots&\vdots\\ \omega_{n-k}^{k-1}&\omega_{n-k+1}^{k-1}&\cdots&\omega_{n-1}^{k-1}\end{pmatrix}% =\begin{pmatrix}g_{0}\\ g_{1}\\ \vdots\\ g_{k-1}\end{pmatrix}.( start_ARG start_ROW start_CELL italic_f start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_f start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL ⋮ end_CELL end_ROW start_ROW start_CELL italic_f start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ) start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT ( start_ARG start_ROW start_CELL 1 end_CELL start_CELL 1 end_CELL start_CELL ⋯ end_CELL start_CELL 1 end_CELL end_ROW start_ROW start_CELL italic_ω start_POSTSUBSCRIPT italic_n - italic_k end_POSTSUBSCRIPT end_CELL start_CELL italic_ω start_POSTSUBSCRIPT italic_n - italic_k + 1 end_POSTSUBSCRIPT end_CELL start_CELL ⋯ end_CELL start_CELL italic_ω start_POSTSUBSCRIPT italic_n - 1 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL ⋮ end_CELL start_CELL ⋮ end_CELL start_CELL ⋱ end_CELL start_CELL ⋮ end_CELL end_ROW start_ROW start_CELL italic_ω start_POSTSUBSCRIPT italic_n - italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_k - 1 end_POSTSUPERSCRIPT end_CELL start_CELL italic_ω start_POSTSUBSCRIPT italic_n - italic_k + 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_k - 1 end_POSTSUPERSCRIPT end_CELL start_CELL ⋯ end_CELL start_CELL italic_ω start_POSTSUBSCRIPT italic_n - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_k - 1 end_POSTSUPERSCRIPT end_CELL end_ROW end_ARG ) = ( start_ARG start_ROW start_CELL italic_g start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_g start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL ⋮ end_CELL end_ROW start_ROW start_CELL italic_g start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ) . (4)

Since the determinant of any k×k𝑘𝑘k\times kitalic_k × italic_k submatrix of the generator matrix in Eq. (3) is invertible, the polynomial f(x)𝑓𝑥f(x)italic_f ( italic_x ) exists and is unique, thus our codes are well-defined.

Similar to the proof in [6], our codes are MDS codes if and only if the determinant of any k×k𝑘𝑘k\times kitalic_k × italic_k submatrix of the generator matrix in Eq. (3) is invertible in psubscript𝑝\mathcal{R}_{p}caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT. Therefore, our codes are MDS codes.

III Encoding and Decoding Methods

In this section, we present FFT and the inverse FFT (IFFT) algorithms over psubscript𝑝\mathcal{R}_{p}caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT. Then the encoding/decoding algorithms based on FFT and modular approach for our codes are presented. By a small abuse of the notation, we use the same indeterminate α𝛼\alphaitalic_α when referring to polynomials as elements in psubscript𝑝\mathcal{R}_{p}caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT or 𝔽2[x]/(pi(x)),i[t]subscript𝔽2delimited-[]𝑥subscript𝑝𝑖𝑥for-all𝑖delimited-[]𝑡\mathbb{F}_{2}[x]/(p_{i}(x)),\forall i\in[t]blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) ) , ∀ italic_i ∈ [ italic_t ]. When the modulo operation is applied to a vector, it represents performing the modulo operation on each component.

For simplicity, we assume m=deg(p1(x))=deg(p2(x))==deg(pt(x))𝑚degreesubscript𝑝1𝑥degreesubscript𝑝2𝑥degreesubscript𝑝𝑡𝑥m=\deg(p_{1}(x))=\deg(p_{2}(x))=\cdots=\deg(p_{t}(x))italic_m = roman_deg ( italic_p start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( italic_x ) ) = roman_deg ( italic_p start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( italic_x ) ) = ⋯ = roman_deg ( italic_p start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ( italic_x ) ) in this section, in which case the subfield generated by {ωl(i)}l=0,1,,n1subscriptsuperscriptsubscript𝜔𝑙𝑖𝑙01𝑛1\{\omega_{l}^{(i)}\}_{l=0,1,\ldots,n-1}{ italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT } start_POSTSUBSCRIPT italic_l = 0 , 1 , … , italic_n - 1 end_POSTSUBSCRIPT is identical to 𝔽2[x]/(pi(x))subscript𝔽2delimited-[]𝑥subscript𝑝𝑖𝑥\mathbb{F}_{2}[x]/(p_{i}(x))blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) ) for i=1,2,,t𝑖12𝑡i=1,2,\ldots,titalic_i = 1 , 2 , … , italic_t. Otherwise, the same argument holds by replacing 𝔽2[x]/(pi(x))subscript𝔽2delimited-[]𝑥subscript𝑝𝑖𝑥\mathbb{F}_{2}[x]/(p_{i}(x))blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) ) with the subfield generated by {ωl(i)}l=0,1,,n1subscriptsuperscriptsubscript𝜔𝑙𝑖𝑙01𝑛1\{\omega_{l}^{(i)}\}_{l=0,1,\ldots,n-1}{ italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT } start_POSTSUBSCRIPT italic_l = 0 , 1 , … , italic_n - 1 end_POSTSUBSCRIPT for i=1,2,,t𝑖12𝑡i=1,2,\ldots,titalic_i = 1 , 2 , … , italic_t.

III-A FFT and IFFT Algorithms over {𝔽2[x]/(pi(x))}i[t]subscriptsubscript𝔽2delimited-[]𝑥subscript𝑝𝑖𝑥𝑖delimited-[]𝑡\{\mathbb{F}_{2}[x]/(p_{i}(x))\}_{i\in[t]}{ blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) ) } start_POSTSUBSCRIPT italic_i ∈ [ italic_t ] end_POSTSUBSCRIPT and psubscript𝑝\mathcal{R}_{p}caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT

The FFT and IFFT algorithms over {𝔽2[x]/(pi(x))}i[t]subscriptsubscript𝔽2delimited-[]𝑥subscript𝑝𝑖𝑥𝑖delimited-[]𝑡\{\mathbb{F}_{2}[x]/(p_{i}(x))\}_{i\in[t]}{ blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) ) } start_POSTSUBSCRIPT italic_i ∈ [ italic_t ] end_POSTSUBSCRIPT and psubscript𝑝\mathcal{R}_{p}caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT are presented as follows.

  1. (1)

    [FFT and IFFT Algorithms over {𝔽2[x]/(pi(x))}i[t]subscriptsubscript𝔽2delimited-[]𝑥subscript𝑝𝑖𝑥𝑖delimited-[]𝑡\{\mathbb{F}_{2}[x]/(p_{i}(x))\}_{i\in[t]}{ blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) ) } start_POSTSUBSCRIPT italic_i ∈ [ italic_t ] end_POSTSUBSCRIPT]

    For i=1,2,,t𝑖12𝑡i=1,2,\ldots,titalic_i = 1 , 2 , … , italic_t, the subspace polynomial [12] over 𝔽2[x]/(pi(x))subscript𝔽2delimited-[]𝑥subscript𝑝𝑖𝑥\mathbb{F}_{2}[x]/(p_{i}(x))blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) ) is defined by sτ(i)(x)=l=02τ1(xωl(i))superscriptsubscript𝑠𝜏𝑖𝑥superscriptsubscriptproduct𝑙0superscript2𝜏1𝑥superscriptsubscript𝜔𝑙𝑖s_{\tau}^{(i)}(x)=\prod\limits_{l=0}^{2^{\tau}-1}(x-\omega_{l}^{(i)})italic_s start_POSTSUBSCRIPT italic_τ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_x ) = ∏ start_POSTSUBSCRIPT italic_l = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 start_POSTSUPERSCRIPT italic_τ end_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( italic_x - italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) for τ=0,1,,m𝜏01𝑚\tau=0,1,\ldots,mitalic_τ = 0 , 1 , … , italic_m. For l=0,1,,2m1𝑙01superscript2𝑚1l=0,1,\ldots,2^{m}-1italic_l = 0 , 1 , … , 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT - 1, define

    X¯l(i)(x)=s0(i)(x)l0s1(i)(x)l1sm1(i)(x)lm1s0(i)(v0(i))l0s1(i)(v1(i))l1sm1(i)(vm1(i))lm1,superscriptsubscript¯𝑋𝑙𝑖𝑥superscriptsubscript𝑠0𝑖superscript𝑥subscript𝑙0superscriptsubscript𝑠1𝑖superscript𝑥subscript𝑙1subscriptsuperscript𝑠𝑖𝑚1superscript𝑥subscript𝑙𝑚1superscriptsubscript𝑠0𝑖superscriptsuperscriptsubscript𝑣0𝑖subscript𝑙0superscriptsubscript𝑠1𝑖superscriptsuperscriptsubscript𝑣1𝑖subscript𝑙1subscriptsuperscript𝑠𝑖𝑚1superscriptsuperscriptsubscript𝑣𝑚1𝑖subscript𝑙𝑚1\,\overline{\!{X}}_{l}^{(i)}(x)=\frac{s_{0}^{(i)}(x)^{l_{0}}s_{1}^{(i)}(x)^{l_% {1}}\cdots s^{(i)}_{m-1}(x)^{l_{m-1}}}{s_{0}^{(i)}(v_{0}^{(i)})^{l_{0}}s_{1}^{% (i)}(v_{1}^{(i)})^{l_{1}}\cdots s^{(i)}_{m-1}(v_{m-1}^{(i)})^{l_{m-1}}},over¯ start_ARG italic_X end_ARG start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_x ) = divide start_ARG italic_s start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_x ) start_POSTSUPERSCRIPT italic_l start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT italic_s start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_x ) start_POSTSUPERSCRIPT italic_l start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT ⋯ italic_s start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_m - 1 end_POSTSUBSCRIPT ( italic_x ) start_POSTSUPERSCRIPT italic_l start_POSTSUBSCRIPT italic_m - 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT end_ARG start_ARG italic_s start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_v start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) start_POSTSUPERSCRIPT italic_l start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT italic_s start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_v start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) start_POSTSUPERSCRIPT italic_l start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT ⋯ italic_s start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_m - 1 end_POSTSUBSCRIPT ( italic_v start_POSTSUBSCRIPT italic_m - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) start_POSTSUPERSCRIPT italic_l start_POSTSUBSCRIPT italic_m - 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT end_ARG ,

    where (l0,l1,,lm1)subscript𝑙0subscript𝑙1subscript𝑙𝑚1(l_{0},l_{1},\ldots,l_{m-1})( italic_l start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_l start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_l start_POSTSUBSCRIPT italic_m - 1 end_POSTSUBSCRIPT ) is the binary representation of l𝑙litalic_l. To avoid confusion, we use α𝛼\alphaitalic_α instead of x𝑥xitalic_x to denote 𝔽2[x]/(pi(x))subscript𝔽2delimited-[]𝑥subscript𝑝𝑖𝑥\mathbb{F}_{2}[x]/(p_{i}(x))blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) ) when it comes to polynomial ring (𝔽2[α]/(pi(α)))[x]subscript𝔽2delimited-[]𝛼subscript𝑝𝑖𝛼delimited-[]𝑥(\mathbb{F}_{2}[\alpha]/(p_{i}(\alpha)))[x]( blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_α ] / ( italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ) ) ) [ italic_x ]. Since the degree of X¯l(i)(x)superscriptsubscript¯𝑋𝑙𝑖𝑥\,\overline{\!{X}}_{l}^{(i)}(x)over¯ start_ARG italic_X end_ARG start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_x ) is l𝑙litalic_l for l=0,1,,2m1𝑙01superscript2𝑚1l=0,1,\ldots,2^{m}-1italic_l = 0 , 1 , … , 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT - 1, the set X¯(i)={X¯0(i),X¯1(i),,X¯2m1(i)}superscript¯𝑋𝑖superscriptsubscript¯𝑋0𝑖superscriptsubscript¯𝑋1𝑖superscriptsubscript¯𝑋superscript2𝑚1𝑖\,\overline{\!{X}}^{(i)}=\{\,\overline{\!{X}}_{0}^{(i)},\,\overline{\!{X}}_{1}% ^{(i)},\ldots,\,\overline{\!{X}}_{2^{m}-1}^{(i)}\}over¯ start_ARG italic_X end_ARG start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT = { over¯ start_ARG italic_X end_ARG start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , over¯ start_ARG italic_X end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , … , over¯ start_ARG italic_X end_ARG start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT } is a basis of (𝔽2[α]/(pi(α)))[x]/(x2mx)subscript𝔽2delimited-[]𝛼subscript𝑝𝑖𝛼delimited-[]𝑥superscript𝑥superscript2𝑚𝑥(\mathbb{F}_{2}[\alpha]/(p_{i}(\alpha)))[x]/(x^{2^{m}}-x)( blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_α ] / ( italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ) ) ) [ italic_x ] / ( italic_x start_POSTSUPERSCRIPT 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT end_POSTSUPERSCRIPT - italic_x ). For any τ{0,1,,m}𝜏01𝑚\tau\in\{0,1,\ldots,m\}italic_τ ∈ { 0 , 1 , … , italic_m }, any f(x)(𝔽2[α]/(pi(α)))[x]𝑓𝑥subscript𝔽2delimited-[]𝛼subscript𝑝𝑖𝛼delimited-[]𝑥f(x)\in(\mathbb{F}_{2}[\alpha]/(p_{i}(\alpha)))[x]italic_f ( italic_x ) ∈ ( blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_α ] / ( italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ) ) ) [ italic_x ] with deg(f(x))<2τdegree𝑓𝑥superscript2𝜏\deg(f(x))<2^{\tau}roman_deg ( italic_f ( italic_x ) ) < 2 start_POSTSUPERSCRIPT italic_τ end_POSTSUPERSCRIPT can be uniquely represented as the linear combination f(x)=l=02τ1flX¯l(i)(x)𝑓𝑥superscriptsubscript𝑙0superscript2𝜏1subscript𝑓𝑙superscriptsubscript¯𝑋𝑙𝑖𝑥f(x)=\sum\limits_{l=0}^{2^{\tau}-1}f_{l}\,\overline{\!{X}}_{l}^{(i)}(x)italic_f ( italic_x ) = ∑ start_POSTSUBSCRIPT italic_l = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 start_POSTSUPERSCRIPT italic_τ end_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_f start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_x ). The vector f¯=(f0,f1,,f2τ1)¯𝑓subscript𝑓0subscript𝑓1subscript𝑓superscript2𝜏1\,\overline{\!{f}}=(f_{0},f_{1},\ldots,f_{2^{\tau}-1})over¯ start_ARG italic_f end_ARG = ( italic_f start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_f start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_f start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_τ end_POSTSUPERSCRIPT - 1 end_POSTSUBSCRIPT ) is the coordinate vector of f(x)𝑓𝑥f(x)italic_f ( italic_x ) with respect to the basis X¯(i)superscript¯𝑋𝑖\,\overline{\!{X}}^{(i)}over¯ start_ARG italic_X end_ARG start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT. Then the FFT over the field 𝔽2[x]/(pi(x))subscript𝔽2delimited-[]𝑥subscript𝑝𝑖𝑥\mathbb{F}_{2}[x]/(p_{i}(x))blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) ), denoted by FFTX¯(i)subscriptFFTsuperscript¯𝑋𝑖\text{FFT}_{\,\overline{\!{X}}^{(i)}}FFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT end_POSTSUBSCRIPT, is defined by

    FFTX¯(i)(f¯,τ,β)=(f(ω0(i)+β),f(ω1(i)+β),,f(ω2τ1(i)+β)),subscriptFFTsuperscript¯𝑋𝑖¯𝑓𝜏𝛽𝑓superscriptsubscript𝜔0𝑖𝛽𝑓superscriptsubscript𝜔1𝑖𝛽𝑓superscriptsubscript𝜔superscript2𝜏1𝑖𝛽\displaystyle\text{FFT}_{\,\overline{\!{X}}^{(i)}}(\,\overline{\!{f}},\tau,% \beta)=(f(\omega_{0}^{(i)}+\beta),f(\omega_{1}^{(i)}+\beta),\ldots,f(\omega_{2% ^{\tau}-1}^{(i)}+\beta)),FFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ( over¯ start_ARG italic_f end_ARG , italic_τ , italic_β ) = ( italic_f ( italic_ω start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT + italic_β ) , italic_f ( italic_ω start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT + italic_β ) , … , italic_f ( italic_ω start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_τ end_POSTSUPERSCRIPT - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT + italic_β ) ) ,

    where β𝔽2[x]/(pi(x))𝛽subscript𝔽2delimited-[]𝑥subscript𝑝𝑖𝑥\beta\in\mathbb{F}_{2}[x]/(p_{i}(x))italic_β ∈ blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) ).

    Since the set {ω0(i),ω1(i),,ω2m1(i)}superscriptsubscript𝜔0𝑖superscriptsubscript𝜔1𝑖superscriptsubscript𝜔superscript2𝑚1𝑖\{\omega_{0}^{(i)},\omega_{1}^{(i)},\ldots,\omega_{2^{m}-1}^{(i)}\}{ italic_ω start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , italic_ω start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , … , italic_ω start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT } forms a finite field of size 2msuperscript2𝑚2^{m}2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT and ωl(i)=l0v0(i)+l1v1(i)++lm1vm1(i)superscriptsubscript𝜔𝑙𝑖subscript𝑙0superscriptsubscript𝑣0𝑖subscript𝑙1superscriptsubscript𝑣1𝑖subscript𝑙𝑚1superscriptsubscript𝑣𝑚1𝑖\omega_{l}^{(i)}=l_{0}v_{0}^{(i)}+l_{1}v_{1}^{(i)}+\ldots+l_{m-1}v_{m-1}^{(i)}italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT = italic_l start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT italic_v start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT + italic_l start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_v start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT + … + italic_l start_POSTSUBSCRIPT italic_m - 1 end_POSTSUBSCRIPT italic_v start_POSTSUBSCRIPT italic_m - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT holds, FFTX¯(i)subscriptFFTsuperscript¯𝑋𝑖\text{FFT}_{\,\overline{\!{X}}^{(i)}}FFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT end_POSTSUBSCRIPT is well-defined and can be calculated by [4, Algorithm 2].

  2. (2)

    [FFT and IFFT Algorithms over psubscript𝑝\mathcal{R}_{p}caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT]

    Similarly, define sτ(x)=l=02τ1(xωl)p[x]subscript𝑠𝜏𝑥superscriptsubscriptproduct𝑙0superscript2𝜏1𝑥subscript𝜔𝑙subscript𝑝delimited-[]𝑥s_{\tau}(x)=\prod\limits_{l=0}^{2^{\tau}-1}(x-\omega_{l})\in\mathcal{R}_{p}[x]italic_s start_POSTSUBSCRIPT italic_τ end_POSTSUBSCRIPT ( italic_x ) = ∏ start_POSTSUBSCRIPT italic_l = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 start_POSTSUPERSCRIPT italic_τ end_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( italic_x - italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ) ∈ caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT [ italic_x ] for τ=0,1,,m𝜏01𝑚\tau=0,1,\ldots,mitalic_τ = 0 , 1 , … , italic_m. For l=0,1,,2m1𝑙01superscript2𝑚1l=0,1,\ldots,2^{m}-1italic_l = 0 , 1 , … , 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT - 1, define

    X¯l(x)=s0(x)l0s1(x)l1sm1(x)lm1s0(v0)l0s1(v1)l1sm1(vm1)lm1,subscript¯𝑋𝑙𝑥subscript𝑠0superscript𝑥subscript𝑙0subscript𝑠1superscript𝑥subscript𝑙1subscript𝑠𝑚1superscript𝑥subscript𝑙𝑚1subscript𝑠0superscriptsubscript𝑣0subscript𝑙0subscript𝑠1superscriptsubscript𝑣1subscript𝑙1subscript𝑠𝑚1superscriptsubscript𝑣𝑚1subscript𝑙𝑚1\,\overline{\!{X}}_{l}(x)=\frac{s_{0}(x)^{l_{0}}s_{1}(x)^{l_{1}}\cdots s_{m-1}% (x)^{l_{m-1}}}{s_{0}(v_{0})^{l_{0}}s_{1}(v_{1})^{l_{1}}\cdots s_{m-1}(v_{m-1})% ^{l_{m-1}}},over¯ start_ARG italic_X end_ARG start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ( italic_x ) = divide start_ARG italic_s start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ( italic_x ) start_POSTSUPERSCRIPT italic_l start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT italic_s start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( italic_x ) start_POSTSUPERSCRIPT italic_l start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT ⋯ italic_s start_POSTSUBSCRIPT italic_m - 1 end_POSTSUBSCRIPT ( italic_x ) start_POSTSUPERSCRIPT italic_l start_POSTSUBSCRIPT italic_m - 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT end_ARG start_ARG italic_s start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ( italic_v start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT italic_l start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT italic_s start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( italic_v start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT italic_l start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT ⋯ italic_s start_POSTSUBSCRIPT italic_m - 1 end_POSTSUBSCRIPT ( italic_v start_POSTSUBSCRIPT italic_m - 1 end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT italic_l start_POSTSUBSCRIPT italic_m - 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT end_ARG ,

    where (l0,l1,,lm1)subscript𝑙0subscript𝑙1subscript𝑙𝑚1(l_{0},l_{1},\ldots,l_{m-1})( italic_l start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_l start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_l start_POSTSUBSCRIPT italic_m - 1 end_POSTSUBSCRIPT ) is the binary representation of l𝑙litalic_l. Since we proved that for any ij𝑖𝑗i\neq jitalic_i ≠ italic_j, ωiωjsubscript𝜔𝑖subscript𝜔𝑗\omega_{i}-\omega_{j}italic_ω start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT - italic_ω start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT is invertible in psubscript𝑝\mathcal{R}_{p}caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT in Theorem 2, we can show that si(vi)subscript𝑠𝑖subscript𝑣𝑖s_{i}(v_{i})italic_s start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_v start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) is invertible in psubscript𝑝\mathcal{R}_{p}caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT for i=0,1,,m1𝑖01𝑚1i=0,1,\ldots,m-1italic_i = 0 , 1 , … , italic_m - 1. Therefore, X¯l(x)subscript¯𝑋𝑙𝑥\,\overline{\!{X}}_{l}(x)over¯ start_ARG italic_X end_ARG start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ( italic_x ) is well defined, the degree of X¯l(x)subscript¯𝑋𝑙𝑥\,\overline{\!{X}}_{l}(x)over¯ start_ARG italic_X end_ARG start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ( italic_x ) is l𝑙litalic_l and the leading coefficient is invertible. Then the set X¯={X¯0,X¯1,,X¯2m1}¯𝑋subscript¯𝑋0subscript¯𝑋1subscript¯𝑋superscript2𝑚1\,\overline{\!{X}}=\{\,\overline{\!{X}}_{0},\,\overline{\!{X}}_{1},\ldots,\,% \overline{\!{X}}_{2^{m}-1}\}over¯ start_ARG italic_X end_ARG = { over¯ start_ARG italic_X end_ARG start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , over¯ start_ARG italic_X end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , over¯ start_ARG italic_X end_ARG start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT - 1 end_POSTSUBSCRIPT } forms a basis of p[x]/(x2mx)subscript𝑝delimited-[]𝑥superscript𝑥superscript2𝑚𝑥\mathcal{R}_{p}[x]/(x^{2^{m}}-x)caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT [ italic_x ] / ( italic_x start_POSTSUPERSCRIPT 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT end_POSTSUPERSCRIPT - italic_x ). Similarly, for any τ{0,1,,m}𝜏01𝑚\tau\in\{0,1,\ldots,m\}italic_τ ∈ { 0 , 1 , … , italic_m } and f(x)p[x]𝑓𝑥subscript𝑝delimited-[]𝑥f(x)\in\mathcal{R}_{p}[x]italic_f ( italic_x ) ∈ caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT [ italic_x ] with deg(f(x))<2τdegree𝑓𝑥superscript2𝜏\deg(f(x))<2^{\tau}roman_deg ( italic_f ( italic_x ) ) < 2 start_POSTSUPERSCRIPT italic_τ end_POSTSUPERSCRIPT, the coordinate vector of f(x)𝑓𝑥f(x)italic_f ( italic_x ) with respect to the basis X¯¯𝑋\,\overline{\!{X}}over¯ start_ARG italic_X end_ARG is denoted as f¯¯𝑓\,\overline{\!{f}}over¯ start_ARG italic_f end_ARG. Then the FFT over psubscript𝑝\mathcal{R}_{p}caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT, denoted by FFTX¯subscriptFFT¯𝑋\text{FFT}_{\,\overline{\!{X}}}FFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG end_POSTSUBSCRIPT, is defined by

    FFTX¯(f¯,τ,β)=(f(ω0+β),f(ω1+β),,f(ω2τ1+β)),subscriptFFT¯𝑋¯𝑓𝜏𝛽𝑓subscript𝜔0𝛽𝑓subscript𝜔1𝛽𝑓subscript𝜔superscript2𝜏1𝛽\displaystyle\text{FFT}_{\,\overline{\!{X}}}(\,\overline{\!{f}},\tau,\beta)=(f% (\omega_{0}+\beta),f(\omega_{1}+\beta),\ldots,f(\omega_{2^{\tau}-1}+\beta)),FFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG end_POSTSUBSCRIPT ( over¯ start_ARG italic_f end_ARG , italic_τ , italic_β ) = ( italic_f ( italic_ω start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_β ) , italic_f ( italic_ω start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + italic_β ) , … , italic_f ( italic_ω start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_τ end_POSTSUPERSCRIPT - 1 end_POSTSUBSCRIPT + italic_β ) ) ,

    where βp𝛽subscript𝑝\beta\in\mathcal{R}_{p}italic_β ∈ caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT.

    Next we provide the algorithm for computing FFTX¯(f¯,τ,β)subscriptFFT¯𝑋¯𝑓𝜏𝛽\text{FFT}_{\,\overline{\!{X}}}(\,\overline{\!{f}},\tau,\beta)FFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG end_POSTSUBSCRIPT ( over¯ start_ARG italic_f end_ARG , italic_τ , italic_β ) and prove its correctness. The FFT algorithm over psubscript𝑝\mathcal{R}_{p}caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT is presented in Algorithm 1, where f(x)=l=02τ1flX¯l(x)p[x]𝑓𝑥superscriptsubscript𝑙0superscript2𝜏1subscript𝑓𝑙subscript¯𝑋𝑙𝑥subscript𝑝delimited-[]𝑥f(x)=\sum\limits_{l=0}^{2^{\tau}-1}f_{l}\,\overline{\!{X}}_{l}(x)\in\mathcal{R% }_{p}[x]italic_f ( italic_x ) = ∑ start_POSTSUBSCRIPT italic_l = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 start_POSTSUPERSCRIPT italic_τ end_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_f start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ( italic_x ) ∈ caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT [ italic_x ] and deg(f(x))<2τdegree𝑓𝑥superscript2𝜏\deg(f(x))<2^{\tau}roman_deg ( italic_f ( italic_x ) ) < 2 start_POSTSUPERSCRIPT italic_τ end_POSTSUPERSCRIPT. We proof in Theorem 3 that Algorithm 1 exactly output FFTX¯(f¯,τ,β)subscriptFFT¯𝑋¯𝑓𝜏𝛽\text{FFT}_{\,\overline{\!{X}}}(\,\overline{\!{f}},\tau,\beta)FFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG end_POSTSUBSCRIPT ( over¯ start_ARG italic_f end_ARG , italic_τ , italic_β ).

    Algorithm 1 FFTX¯(f¯,τ,β)subscriptFFT¯𝑋¯𝑓𝜏𝛽\text{FFT}_{\,\overline{\!{X}}}(\,\overline{\!{f}},\tau,\beta)FFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG end_POSTSUBSCRIPT ( over¯ start_ARG italic_f end_ARG , italic_τ , italic_β ) over psubscript𝑝\mathcal{R}_{p}caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT
    1:f¯¯𝑓\,\overline{\!{f}}over¯ start_ARG italic_f end_ARG = (f0subscript𝑓0{f}_{0}italic_f start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT,f1subscript𝑓1{f}_{1}italic_f start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT,…,f2τ1subscript𝑓superscript2𝜏1{f}_{2^{\tau}-1}italic_f start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_τ end_POSTSUPERSCRIPT - 1 end_POSTSUBSCRIPT), τ𝜏\tauitalic_τ, β𝛽\betaitalic_β
    2:(f(ω0+β),f(ω1+β)),,f(ω2τ1+β))(f(\omega_{0}+\beta),f(\omega_{1}+\beta)),\ldots,f(\omega_{2^{\tau}-1}+\beta))( italic_f ( italic_ω start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_β ) , italic_f ( italic_ω start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + italic_β ) ) , … , italic_f ( italic_ω start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_τ end_POSTSUPERSCRIPT - 1 end_POSTSUBSCRIPT + italic_β ) )
    3:if τ𝜏\tauitalic_τ = 0 then
    4:    return f0subscript𝑓0{f}_{0}italic_f start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT
    5:end if
    6:for l𝑙litalic_l = 0,1,…,2τ11superscript2𝜏112^{\tau-1}-12 start_POSTSUPERSCRIPT italic_τ - 1 end_POSTSUPERSCRIPT - 1 do
    7:    al0=fl+sτ1(β)sτ1(vτ1)fl+2τ1superscriptsubscript𝑎𝑙0subscript𝑓𝑙subscript𝑠𝜏1𝛽subscript𝑠𝜏1subscript𝑣𝜏1subscript𝑓𝑙superscript2𝜏1a_{l}^{0}={f}_{l}+\frac{s_{\tau-1}(\beta)}{s_{\tau-1}(v_{\tau-1})}{f}_{l+2^{% \tau-1}}italic_a start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT = italic_f start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT + divide start_ARG italic_s start_POSTSUBSCRIPT italic_τ - 1 end_POSTSUBSCRIPT ( italic_β ) end_ARG start_ARG italic_s start_POSTSUBSCRIPT italic_τ - 1 end_POSTSUBSCRIPT ( italic_v start_POSTSUBSCRIPT italic_τ - 1 end_POSTSUBSCRIPT ) end_ARG italic_f start_POSTSUBSCRIPT italic_l + 2 start_POSTSUPERSCRIPT italic_τ - 1 end_POSTSUPERSCRIPT end_POSTSUBSCRIPT
    8:    al1=al0+fl+2τ1superscriptsubscript𝑎𝑙1superscriptsubscript𝑎𝑙0subscript𝑓𝑙superscript2𝜏1a_{l}^{1}=a_{l}^{0}+{f}_{l+2^{\tau-1}}italic_a start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 1 end_POSTSUPERSCRIPT = italic_a start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT + italic_f start_POSTSUBSCRIPT italic_l + 2 start_POSTSUPERSCRIPT italic_τ - 1 end_POSTSUPERSCRIPT end_POSTSUBSCRIPT
    9:end for
    10:a0superscript𝑎0a^{0}italic_a start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT = (a00,a10,,a2τ110)superscriptsubscript𝑎00superscriptsubscript𝑎10superscriptsubscript𝑎superscript2𝜏110(a_{0}^{0},a_{1}^{0},\ldots,a_{2^{\tau-1}-1}^{0})( italic_a start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT , italic_a start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT , … , italic_a start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_τ - 1 end_POSTSUPERSCRIPT - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT ), a1superscript𝑎1a^{1}italic_a start_POSTSUPERSCRIPT 1 end_POSTSUPERSCRIPT = (a01,a11,,a2τ111)superscriptsubscript𝑎01superscriptsubscript𝑎11superscriptsubscript𝑎superscript2𝜏111(a_{0}^{1},a_{1}^{1},\ldots,a_{2^{\tau-1}-1}^{1})( italic_a start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 1 end_POSTSUPERSCRIPT , italic_a start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 1 end_POSTSUPERSCRIPT , … , italic_a start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_τ - 1 end_POSTSUPERSCRIPT - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 1 end_POSTSUPERSCRIPT )
    11:A0subscript𝐴0A_{0}italic_A start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = FFTX¯(a0,τ1,β)subscriptFFT¯𝑋superscript𝑎0𝜏1𝛽\text{FFT}_{\,\overline{\!{X}}}(a^{0},\tau-1,\beta)FFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG end_POSTSUBSCRIPT ( italic_a start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT , italic_τ - 1 , italic_β ), A1subscript𝐴1A_{1}italic_A start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = FFTX¯(a1,τ1,vτ1+β)subscriptFFT¯𝑋superscript𝑎1𝜏1subscript𝑣𝜏1𝛽\text{FFT}_{\,\overline{\!{X}}}(a^{1},\tau-1,v_{\tau-1}+\beta)FFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG end_POSTSUBSCRIPT ( italic_a start_POSTSUPERSCRIPT 1 end_POSTSUPERSCRIPT , italic_τ - 1 , italic_v start_POSTSUBSCRIPT italic_τ - 1 end_POSTSUBSCRIPT + italic_β )
    12:return (A0,A1)subscript𝐴0subscript𝐴1(A_{0},A_{1})( italic_A start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_A start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT )
    Theorem 3.

    Algorithm 1 exactly output FFTX¯(f¯,τ,β)=(f(ω0+β),f(ω1+β)),,f(ω2τ1+β))\text{FFT}_{\,\overline{\!{X}}}(\,\overline{\!{f}},\tau,\beta)=(f(\omega_{0}+% \beta),f(\omega_{1}+\beta)),\ldots,f(\omega_{2^{\tau}-1}+\beta))FFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG end_POSTSUBSCRIPT ( over¯ start_ARG italic_f end_ARG , italic_τ , italic_β ) = ( italic_f ( italic_ω start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_β ) , italic_f ( italic_ω start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + italic_β ) ) , … , italic_f ( italic_ω start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_τ end_POSTSUPERSCRIPT - 1 end_POSTSUBSCRIPT + italic_β ) ).

    Proof:

    Denote Φ(fj)=(fj(1),fj(1),,fj(t))Φsubscript𝑓𝑗superscriptsubscript𝑓𝑗1superscriptsubscript𝑓𝑗1superscriptsubscript𝑓𝑗𝑡\Phi(f_{j})=(f_{j}^{(1)},f_{j}^{(1)},\ldots,f_{j}^{(t)})roman_Φ ( italic_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ) = ( italic_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( 1 ) end_POSTSUPERSCRIPT , italic_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( 1 ) end_POSTSUPERSCRIPT , … , italic_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_t ) end_POSTSUPERSCRIPT ) for j=0,1,,2τ1𝑗01superscript2𝜏1j=0,1,\ldots,2^{\tau}-1italic_j = 0 , 1 , … , 2 start_POSTSUPERSCRIPT italic_τ end_POSTSUPERSCRIPT - 1 and Φ(β)=(β(1),β(2),,β(t))Φ𝛽superscript𝛽1superscript𝛽2superscript𝛽𝑡\Phi(\beta)=(\beta^{(1)},\beta^{(2)},\ldots,\beta^{(t)})roman_Φ ( italic_β ) = ( italic_β start_POSTSUPERSCRIPT ( 1 ) end_POSTSUPERSCRIPT , italic_β start_POSTSUPERSCRIPT ( 2 ) end_POSTSUPERSCRIPT , … , italic_β start_POSTSUPERSCRIPT ( italic_t ) end_POSTSUPERSCRIPT ). For i=1,2,,t𝑖12𝑡i=1,2,\ldots,titalic_i = 1 , 2 , … , italic_t, define f(i)(x)=j=02τ1fj(i)X¯j(i)(x)superscript𝑓𝑖𝑥superscriptsubscript𝑗0superscript2𝜏1superscriptsubscript𝑓𝑗𝑖superscriptsubscript¯𝑋𝑗𝑖𝑥f^{(i)}(x)=\sum\limits_{j=0}^{2^{\tau}-1}{f}_{j}^{(i)}\,\overline{\!{X}}_{j}^{% (i)}(x)italic_f start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_x ) = ∑ start_POSTSUBSCRIPT italic_j = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 start_POSTSUPERSCRIPT italic_τ end_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT over¯ start_ARG italic_X end_ARG start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_x ) and denote f(i)¯=(f0(i),f1(i),,f2τ1(i))¯superscript𝑓𝑖superscriptsubscript𝑓0𝑖superscriptsubscript𝑓1𝑖superscriptsubscript𝑓superscript2𝜏1𝑖\,\overline{\!{f^{(i)}}}=({f}_{0}^{(i)},{f}_{1}^{(i)},\ldots,{f}_{2^{\tau}-1}^% {(i)})over¯ start_ARG italic_f start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT end_ARG = ( italic_f start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , italic_f start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , … , italic_f start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_τ end_POSTSUPERSCRIPT - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) as the coefficient vector of f(i)(x)superscript𝑓𝑖𝑥f^{(i)}(x)italic_f start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_x ) with respect to the basis X¯(i)superscript¯𝑋𝑖\,\overline{\!{X}}^{(i)}over¯ start_ARG italic_X end_ARG start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT.

    For i=1,2,,t𝑖12𝑡i=1,2,\ldots,titalic_i = 1 , 2 , … , italic_t, taking all elements in the computation process modulo pi(α)subscript𝑝𝑖𝛼p_{i}(\alpha)italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ) component-wise, the input is f(i)¯=(f0(i),f1(i),,f2τ1(i))¯superscript𝑓𝑖superscriptsubscript𝑓0𝑖superscriptsubscript𝑓1𝑖superscriptsubscript𝑓superscript2𝜏1𝑖\,\overline{\!{f^{(i)}}}=({f}_{0}^{(i)},{f}_{1}^{(i)},\ldots,{f}_{2^{\tau}-1}^% {(i)})over¯ start_ARG italic_f start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT end_ARG = ( italic_f start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , italic_f start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , … , italic_f start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_τ end_POSTSUPERSCRIPT - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ). Therefore, the input of Algorithm 1 is identical to the input of FFTX¯(i)(f(i)¯,τ,β(i))subscriptFFTsuperscript¯𝑋𝑖¯superscript𝑓𝑖𝜏superscript𝛽𝑖\text{FFT}_{\,\overline{\!{X}}^{(i)}}(\,\overline{\!{f^{(i)}}},\tau,\beta^{(i)})FFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ( over¯ start_ARG italic_f start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT end_ARG , italic_τ , italic_β start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) in [4, Algorithm 2] when taken modulo pi(α)subscript𝑝𝑖𝛼p_{i}(\alpha)italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ).

    For i=1,2,,t𝑖12𝑡i=1,2,\ldots,titalic_i = 1 , 2 , … , italic_t, it is straightforward to verify that the intermediate steps of this algorithm are also identical to the FFTX¯(i)(f(i)¯,τ,β(i))subscriptFFTsuperscript¯𝑋𝑖¯superscript𝑓𝑖𝜏superscript𝛽𝑖\text{FFT}_{\,\overline{\!{X}}^{(i)}}(\,\overline{\!{f^{(i)}}},\tau,\beta^{(i)})FFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ( over¯ start_ARG italic_f start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT end_ARG , italic_τ , italic_β start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) algorithm in [4, Algorithm 2] under modulo pi(α)subscript𝑝𝑖𝛼p_{i}(\alpha)italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ) by the following equation

    sτ1(β)sτ1(vτ1)sτ1(i)(β(i))sτ1(i)(vτ1(i))(modpi(α)).subscript𝑠𝜏1𝛽subscript𝑠𝜏1subscript𝑣𝜏1annotatedsuperscriptsubscript𝑠𝜏1𝑖superscript𝛽𝑖superscriptsubscript𝑠𝜏1𝑖subscriptsuperscript𝑣𝑖𝜏1pmodsubscript𝑝𝑖𝛼\frac{s_{\tau-1}(\beta)}{s_{\tau-1}(v_{\tau-1})}\equiv\frac{s_{\tau-1}^{(i)}(% \beta^{(i)})}{s_{\tau-1}^{(i)}(v^{(i)}_{\tau-1})}\pmod{p_{i}(\alpha)}.divide start_ARG italic_s start_POSTSUBSCRIPT italic_τ - 1 end_POSTSUBSCRIPT ( italic_β ) end_ARG start_ARG italic_s start_POSTSUBSCRIPT italic_τ - 1 end_POSTSUBSCRIPT ( italic_v start_POSTSUBSCRIPT italic_τ - 1 end_POSTSUBSCRIPT ) end_ARG ≡ divide start_ARG italic_s start_POSTSUBSCRIPT italic_τ - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_β start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) end_ARG start_ARG italic_s start_POSTSUBSCRIPT italic_τ - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_v start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_τ - 1 end_POSTSUBSCRIPT ) end_ARG start_MODIFIER ( roman_mod start_ARG italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ) end_ARG ) end_MODIFIER .

    Based on the above discussion, the output of Algorithm 1 is equivalent to the output of
    FFTX¯(i)(f(i)¯,τ,β(i))subscriptFFTsuperscript¯𝑋𝑖¯superscript𝑓𝑖𝜏superscript𝛽𝑖\text{FFT}_{\,\overline{\!{X}}^{(i)}}(\,\overline{\!{f^{(i)}}},\tau,\beta^{(i)})FFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ( over¯ start_ARG italic_f start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT end_ARG , italic_τ , italic_β start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) under modulo pi(α)subscript𝑝𝑖𝛼p_{i}(\alpha)italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ) for i=1,2,,t𝑖12𝑡i=1,2,\ldots,titalic_i = 1 , 2 , … , italic_t. Assuming the output of Algorithm 1 is (r1,,r2τ1)subscript𝑟1subscript𝑟superscript2𝜏1(r_{1},\ldots,r_{2^{\tau}-1})( italic_r start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_r start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_τ end_POSTSUPERSCRIPT - 1 end_POSTSUBSCRIPT ), then we have

    (r1,,r2τ1)(f(i)(ω0(i)+β(i)),f(i)(ω1(i)+β(i))),,f(i)(ω2τ1(i)+β(i)))(modpi(α)).\displaystyle(r_{1},\ldots,r_{2^{\tau}-1})\equiv(f^{(i)}(\omega_{0}^{(i)}+% \beta^{(i)}),f^{(i)}(\omega_{1}^{(i)}+\beta^{(i)})),\ldots,f^{(i)}(\omega_{2^{% \tau}-1}^{(i)}+\beta^{(i)}))\pmod{p_{i}(\alpha)}.( italic_r start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_r start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_τ end_POSTSUPERSCRIPT - 1 end_POSTSUBSCRIPT ) ≡ ( italic_f start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_ω start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT + italic_β start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) , italic_f start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_ω start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT + italic_β start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) ) , … , italic_f start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_ω start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_τ end_POSTSUPERSCRIPT - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT + italic_β start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) ) start_MODIFIER ( roman_mod start_ARG italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ) end_ARG ) end_MODIFIER . (5)

    Since ΦΦ\Phiroman_Φ is a ring isomorphism, it must be the case that rj=Φ1(f(1)(ωj(1)+β(1)),f(2)(ωj(2)+β(2)),,f(t)(ωj(t)+β(t)))=f(ωj+β)subscript𝑟𝑗superscriptΦ1superscript𝑓1superscriptsubscript𝜔𝑗1superscript𝛽1superscript𝑓2superscriptsubscript𝜔𝑗2superscript𝛽2superscript𝑓𝑡superscriptsubscript𝜔𝑗𝑡superscript𝛽𝑡𝑓subscript𝜔𝑗𝛽r_{j}=\Phi^{-1}(f^{(1)}(\omega_{j}^{(1)}+\beta^{(1)}),f^{(2)}(\omega_{j}^{(2)}% +\beta^{(2)}),\ldots,f^{(t)}(\omega_{j}^{(t)}+\beta^{(t)}))=f(\omega_{j}+\beta)italic_r start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT = roman_Φ start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( italic_f start_POSTSUPERSCRIPT ( 1 ) end_POSTSUPERSCRIPT ( italic_ω start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( 1 ) end_POSTSUPERSCRIPT + italic_β start_POSTSUPERSCRIPT ( 1 ) end_POSTSUPERSCRIPT ) , italic_f start_POSTSUPERSCRIPT ( 2 ) end_POSTSUPERSCRIPT ( italic_ω start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( 2 ) end_POSTSUPERSCRIPT + italic_β start_POSTSUPERSCRIPT ( 2 ) end_POSTSUPERSCRIPT ) , … , italic_f start_POSTSUPERSCRIPT ( italic_t ) end_POSTSUPERSCRIPT ( italic_ω start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_t ) end_POSTSUPERSCRIPT + italic_β start_POSTSUPERSCRIPT ( italic_t ) end_POSTSUPERSCRIPT ) ) = italic_f ( italic_ω start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT + italic_β ) for j=0,1,,2τ1𝑗01superscript2𝜏1j=0,1,\ldots,2^{\tau}-1italic_j = 0 , 1 , … , 2 start_POSTSUPERSCRIPT italic_τ end_POSTSUPERSCRIPT - 1. Therefore Algorithm 1 exactly output (r1,,r2τ1)=(f(ω0+β),f(ω1+β),,f(ω2τ1+β))subscript𝑟1subscript𝑟superscript2𝜏1𝑓subscript𝜔0𝛽𝑓subscript𝜔1𝛽𝑓subscript𝜔superscript2𝜏1𝛽(r_{1},\ldots,r_{2^{\tau}-1})=(f(\omega_{0}+\beta),f(\omega_{1}+\beta),\ldots,% f(\omega_{2^{\tau}-1}+\beta))( italic_r start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_r start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_τ end_POSTSUPERSCRIPT - 1 end_POSTSUBSCRIPT ) = ( italic_f ( italic_ω start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_β ) , italic_f ( italic_ω start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + italic_β ) , … , italic_f ( italic_ω start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_τ end_POSTSUPERSCRIPT - 1 end_POSTSUBSCRIPT + italic_β ) ).

The IFFT algorithm over {𝔽2[x]/(pi(x))}i[t]subscriptsubscript𝔽2delimited-[]𝑥subscript𝑝𝑖𝑥𝑖delimited-[]𝑡\{\mathbb{F}_{2}[x]/(p_{i}(x))\}_{i\in[t]}{ blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) ) } start_POSTSUBSCRIPT italic_i ∈ [ italic_t ] end_POSTSUBSCRIPT and psubscript𝑝\mathcal{R}_{p}caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT can be defined similarly.

III-B Encoding Algorithm

Given the k𝑘kitalic_k data symbols g0,g1,,gk1psubscript𝑔0subscript𝑔1subscript𝑔𝑘1subscript𝑝g_{0},g_{1},\ldots,g_{k-1}\in\mathcal{R}_{p}italic_g start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_g start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_g start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ∈ caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT, there exists f(x)=i=0k1fixip[x]𝑓𝑥superscriptsubscript𝑖0𝑘1subscript𝑓𝑖superscript𝑥𝑖subscript𝑝delimited-[]𝑥f(x)=\sum_{i=0}^{k-1}f_{i}x^{i}\in\mathcal{R}_{p}[x]italic_f ( italic_x ) = ∑ start_POSTSUBSCRIPT italic_i = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_k - 1 end_POSTSUPERSCRIPT italic_f start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_x start_POSTSUPERSCRIPT italic_i end_POSTSUPERSCRIPT ∈ caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT [ italic_x ] such that f(ω2μ+i)=gi𝑓subscript𝜔superscript2𝜇𝑖subscript𝑔𝑖f(\omega_{2^{\mu}+i})=g_{i}italic_f ( italic_ω start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT + italic_i end_POSTSUBSCRIPT ) = italic_g start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT for i=0,1,,k1𝑖01𝑘1i=0,1,\ldots,k-1italic_i = 0 , 1 , … , italic_k - 1 by the construction in Section II. For j=1,2,,2mμ𝑗12superscript2𝑚𝜇j=1,2,\ldots,2^{m-\mu}italic_j = 1 , 2 , … , 2 start_POSTSUPERSCRIPT italic_m - italic_μ end_POSTSUPERSCRIPT, denote

Fj=(f(ω(j1)2μ),f(ω(j1)2μ+1),,f(ωj2μ1)).subscript𝐹𝑗𝑓subscript𝜔𝑗1superscript2𝜇𝑓subscript𝜔𝑗1superscript2𝜇1𝑓subscript𝜔𝑗superscript2𝜇1F_{j}=(f(\omega_{(j-1)\cdot 2^{\mu}}),f(\omega_{(j-1)\cdot 2^{\mu}+1}),\ldots,% f(\omega_{j\cdot 2^{\mu}-1})).italic_F start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT = ( italic_f ( italic_ω start_POSTSUBSCRIPT ( italic_j - 1 ) ⋅ 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ) , italic_f ( italic_ω start_POSTSUBSCRIPT ( italic_j - 1 ) ⋅ 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT + 1 end_POSTSUBSCRIPT ) , … , italic_f ( italic_ω start_POSTSUBSCRIPT italic_j ⋅ 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT - 1 end_POSTSUBSCRIPT ) ) .

By the definition of our codes, F1subscript𝐹1F_{1}italic_F start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT are the 2μsuperscript2𝜇2^{\mu}2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT parity symbols and F2,F3,,F2mμsubscript𝐹2subscript𝐹3subscript𝐹superscript2𝑚𝜇F_{2},F_{3},\ldots,F_{2^{m-\mu}}italic_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_F start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT , … , italic_F start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_m - italic_μ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT are the 2m2μsuperscript2𝑚superscript2𝜇2^{m}-2^{\mu}2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT - 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT data symbols. Then we only need to compute the parity symbols F1subscript𝐹1F_{1}italic_F start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT.

For any f(x)p[x]𝑓𝑥subscript𝑝delimited-[]𝑥f(x)\in\mathcal{R}_{p}[x]italic_f ( italic_x ) ∈ caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT [ italic_x ] with deg(f(x))=ddegree𝑓𝑥𝑑\deg(f(x))=droman_deg ( italic_f ( italic_x ) ) = italic_d, i.e., f(x)=j=0dfjxj𝑓𝑥superscriptsubscript𝑗0𝑑subscript𝑓𝑗superscript𝑥𝑗f(x)=\sum\limits_{j=0}^{d}f_{j}x^{j}italic_f ( italic_x ) = ∑ start_POSTSUBSCRIPT italic_j = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_d end_POSTSUPERSCRIPT italic_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT italic_x start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT, denote f(i)(x)(𝔽2[α]/(pi(α)))[x]superscript𝑓𝑖𝑥subscript𝔽2delimited-[]𝛼subscript𝑝𝑖𝛼delimited-[]𝑥f^{(i)}(x)\in(\mathbb{F}_{2}[\alpha]/(p_{i}(\alpha)))[x]italic_f start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_x ) ∈ ( blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_α ] / ( italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ) ) ) [ italic_x ] by

f(i)(x)=j=0dfj(i)xj,superscript𝑓𝑖𝑥superscriptsubscript𝑗0𝑑superscriptsubscript𝑓𝑗𝑖superscript𝑥𝑗f^{(i)}(x)=\sum\limits_{j=0}^{d}f_{j}^{(i)}x^{j},italic_f start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_x ) = ∑ start_POSTSUBSCRIPT italic_j = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_d end_POSTSUPERSCRIPT italic_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT italic_x start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT , (6)

where i=1,2,,t𝑖12𝑡i=1,2,\ldots,titalic_i = 1 , 2 , … , italic_t and Φ(fj)=(fj(1),fj(2),,fj(t))Φsubscript𝑓𝑗superscriptsubscript𝑓𝑗1superscriptsubscript𝑓𝑗2superscriptsubscript𝑓𝑗𝑡\Phi(f_{j})=(f_{j}^{(1)},f_{j}^{(2)},\ldots,f_{j}^{(t)})roman_Φ ( italic_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ) = ( italic_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( 1 ) end_POSTSUPERSCRIPT , italic_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( 2 ) end_POSTSUPERSCRIPT , … , italic_f start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_t ) end_POSTSUPERSCRIPT ) for j=0,1,,d𝑗01𝑑j=0,1,\ldots,ditalic_j = 0 , 1 , … , italic_d.

For i=1,2,,t𝑖12𝑡i=1,2,\ldots,titalic_i = 1 , 2 , … , italic_t and j=1,2,,2mμ𝑗12superscript2𝑚𝜇j=1,2,\ldots,2^{m-\mu}italic_j = 1 , 2 , … , 2 start_POSTSUPERSCRIPT italic_m - italic_μ end_POSTSUPERSCRIPT, define F(i)=(f(i)(ω0(i)),f(i)(ω1(i)),,f(i)(ωn1(i)))superscript𝐹𝑖superscript𝑓𝑖superscriptsubscript𝜔0𝑖superscript𝑓𝑖superscriptsubscript𝜔1𝑖superscript𝑓𝑖superscriptsubscript𝜔𝑛1𝑖F^{(i)}=(f^{(i)}(\omega_{0}^{(i)}),f^{(i)}(\omega_{1}^{(i)}),\ldots,f^{(i)}(% \omega_{n-1}^{(i)}))italic_F start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT = ( italic_f start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_ω start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) , italic_f start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_ω start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) , … , italic_f start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_ω start_POSTSUBSCRIPT italic_n - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) ) and

Fj(i)=(f(i)(ω(j1)2μ),f(i)(ω(j1)2μ+1),,f(i)(ωj2μ1)).superscriptsubscript𝐹𝑗𝑖superscript𝑓𝑖subscript𝜔𝑗1superscript2𝜇superscript𝑓𝑖subscript𝜔𝑗1superscript2𝜇1superscript𝑓𝑖subscript𝜔𝑗superscript2𝜇1F_{j}^{(i)}=(f^{(i)}(\omega_{(j-1)\cdot 2^{\mu}}),f^{(i)}(\omega_{(j-1)\cdot 2% ^{\mu}+1}),\ldots,f^{(i)}(\omega_{j\cdot 2^{\mu}-1})).italic_F start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT = ( italic_f start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_ω start_POSTSUBSCRIPT ( italic_j - 1 ) ⋅ 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ) , italic_f start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_ω start_POSTSUBSCRIPT ( italic_j - 1 ) ⋅ 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT + 1 end_POSTSUBSCRIPT ) , … , italic_f start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_ω start_POSTSUBSCRIPT italic_j ⋅ 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT - 1 end_POSTSUBSCRIPT ) ) .

For i=1,2,,t𝑖12𝑡i=1,2,\ldots,titalic_i = 1 , 2 , … , italic_t, F(i)superscript𝐹𝑖F^{(i)}italic_F start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT is a codeword of RS codes over the field 𝔽2[x]/(pi(x))subscript𝔽2delimited-[]𝑥subscript𝑝𝑖𝑥\mathbb{F}_{2}[x]/(p_{i}(x))blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) ) whose data symbols are {Fj(i)}j=22mμsuperscriptsubscriptsuperscriptsubscript𝐹𝑗𝑖𝑗2superscript2𝑚𝜇\{F_{j}^{(i)}\}_{j=2}^{2^{m-\mu}}{ italic_F start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT } start_POSTSUBSCRIPT italic_j = 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 start_POSTSUPERSCRIPT italic_m - italic_μ end_POSTSUPERSCRIPT end_POSTSUPERSCRIPT. The next Lemma shows the formula for calculating F1subscript𝐹1F_{1}italic_F start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT.

Lemma 4.

The parity symbols of our RS codes can be calculated as follows,

F1=FFTX¯(IFFTX¯(F2,μ,ω2μ)++IFFTX¯(F2mμ,μ,ω2m2μ),μ,0).subscript𝐹1subscriptFFT¯𝑋subscriptIFFT¯𝑋subscript𝐹2𝜇subscript𝜔superscript2𝜇subscriptIFFT¯𝑋subscript𝐹superscript2𝑚𝜇𝜇subscript𝜔superscript2𝑚superscript2𝜇𝜇0\displaystyle F_{1}=\text{FFT}_{\,\overline{\!{X}}}(\text{IFFT}_{\,\overline{% \!{X}}}(F_{2},\mu,\omega_{2^{\mu}})+\cdots+\text{IFFT}_{\,\overline{\!{X}}}(F_% {2^{m-\mu}},\mu,\omega_{2^{m}-2^{\mu}}),\mu,0).italic_F start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = FFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG end_POSTSUBSCRIPT ( IFFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG end_POSTSUBSCRIPT ( italic_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_μ , italic_ω start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ) + ⋯ + IFFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG end_POSTSUBSCRIPT ( italic_F start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_m - italic_μ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT , italic_μ , italic_ω start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT - 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ) , italic_μ , 0 ) .
Proof:

By the definition of FFTX¯subscriptFFT¯𝑋\text{FFT}_{\,\overline{\!{X}}}FFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG end_POSTSUBSCRIPT and FFTX¯(i)subscriptFFTsuperscript¯𝑋𝑖\text{FFT}_{\,\overline{\!{X}}^{(i)}}FFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT end_POSTSUBSCRIPT, the following equation can be concluded for any fp[x]𝑓subscript𝑝delimited-[]𝑥f\in\mathcal{R}_{p}[x]italic_f ∈ caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT [ italic_x ] and i[t]𝑖delimited-[]𝑡i\in[t]italic_i ∈ [ italic_t ],

FFTX¯(f¯,μ,β)FFTX¯(i)(f(i)¯,μ,β(i))(modpi(α)),subscriptFFT¯𝑋¯𝑓𝜇𝛽annotatedsubscriptFFTsuperscript¯𝑋𝑖¯superscript𝑓𝑖𝜇superscript𝛽𝑖pmodsubscript𝑝𝑖𝛼\text{FFT}_{\,\overline{\!{X}}}(\,\overline{\!{f}},\mu,\beta)\equiv\text{FFT}_% {\,\overline{\!{X}}^{(i)}}(\,\overline{\!{f^{(i)}}},\mu,\beta^{(i)})\pmod{p_{i% }(\alpha)},FFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG end_POSTSUBSCRIPT ( over¯ start_ARG italic_f end_ARG , italic_μ , italic_β ) ≡ FFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ( over¯ start_ARG italic_f start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT end_ARG , italic_μ , italic_β start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) start_MODIFIER ( roman_mod start_ARG italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ) end_ARG ) end_MODIFIER , (7)

where f(i)¯¯superscript𝑓𝑖\,\overline{\!{f^{(i)}}}over¯ start_ARG italic_f start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT end_ARG denotes the coordinate vector of f(i)(x)superscript𝑓𝑖𝑥f^{(i)}(x)italic_f start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_x ) with respect to the basis X¯(i)superscript¯𝑋𝑖\,\overline{\!{X}}^{(i)}over¯ start_ARG italic_X end_ARG start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT and modulo is taken component-wise.

Similarly,

IFFTX¯(f¯,μ,β)IFFTX¯(i)(f(i)¯,μ,β(i))(modpi(α)).subscriptIFFT¯𝑋¯𝑓𝜇𝛽annotatedsubscriptIFFTsuperscript¯𝑋𝑖¯superscript𝑓𝑖𝜇superscript𝛽𝑖pmodsubscript𝑝𝑖𝛼\text{IFFT}_{\,\overline{\!{X}}}(\,\overline{\!{f}},\mu,\beta)\equiv\text{IFFT% }_{\,\overline{\!{X}}^{(i)}}(\,\overline{\!{f^{(i)}}},\mu,\beta^{(i)})\pmod{p_% {i}(\alpha)}.IFFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG end_POSTSUBSCRIPT ( over¯ start_ARG italic_f end_ARG , italic_μ , italic_β ) ≡ IFFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ( over¯ start_ARG italic_f start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT end_ARG , italic_μ , italic_β start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) start_MODIFIER ( roman_mod start_ARG italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ) end_ARG ) end_MODIFIER . (8)

Therefore, applying these two equations iteratively yields

FFTX¯(IFFTX¯(F2,μ,ω2μ)++IFFTX¯(F2mμ,μ,ω2m2μ),μ,0)subscriptFFT¯𝑋subscriptIFFT¯𝑋subscript𝐹2𝜇subscript𝜔superscript2𝜇subscriptIFFT¯𝑋subscript𝐹superscript2𝑚𝜇𝜇subscript𝜔superscript2𝑚superscript2𝜇𝜇0\displaystyle\text{FFT}_{\,\overline{\!{X}}}(\text{IFFT}_{\,\overline{\!{X}}}(% F_{2},\mu,\omega_{2^{\mu}})+\ldots+\text{IFFT}_{\,\overline{\!{X}}}(F_{2^{m-% \mu}},\mu,\omega_{2^{m}-2^{\mu}}),\mu,0)FFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG end_POSTSUBSCRIPT ( IFFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG end_POSTSUBSCRIPT ( italic_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_μ , italic_ω start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ) + … + IFFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG end_POSTSUBSCRIPT ( italic_F start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_m - italic_μ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT , italic_μ , italic_ω start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT - 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ) , italic_μ , 0 ) (9)
\displaystyle\equiv FFTX¯(i)(IFFTX¯(i)(F2(i),μ,ω2μ(i))++IFFTX¯(i)(F2mμ(i),μ,ω2m2μ(i)),μ,0)(modpi(α)).annotatedsubscriptFFTsuperscript¯𝑋𝑖subscriptIFFTsuperscript¯𝑋𝑖superscriptsubscript𝐹2𝑖𝜇superscriptsubscript𝜔superscript2𝜇𝑖subscriptIFFTsuperscript¯𝑋𝑖superscriptsubscript𝐹superscript2𝑚𝜇𝑖𝜇superscriptsubscript𝜔superscript2𝑚superscript2𝜇𝑖𝜇0pmodsubscript𝑝𝑖𝛼\displaystyle\text{FFT}_{\,\overline{\!{X}}^{(i)}}(\text{IFFT}_{\,\overline{\!% {X}}^{(i)}}(F_{2}^{(i)},\mu,\omega_{2^{\mu}}^{(i)})+\ldots+\text{IFFT}_{\,% \overline{\!{X}}^{(i)}}(F_{2^{m-\mu}}^{(i)},\mu,\omega_{2^{m}-2^{\mu}}^{(i)}),% \mu,0)\pmod{p_{i}(\alpha)}.FFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ( IFFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ( italic_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , italic_μ , italic_ω start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) + … + IFFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ( italic_F start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_m - italic_μ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , italic_μ , italic_ω start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT - 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) , italic_μ , 0 ) start_MODIFIER ( roman_mod start_ARG italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ) end_ARG ) end_MODIFIER .

For i[t]𝑖delimited-[]𝑡i\in[t]italic_i ∈ [ italic_t ], since F(i)superscript𝐹𝑖F^{(i)}italic_F start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT is a codeword of RS codes over the field 𝔽2[x]/(pi(x))subscript𝔽2delimited-[]𝑥subscript𝑝𝑖𝑥\mathbb{F}_{2}[x]/(p_{i}(x))blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) ) and F2(i),F3(i),,F2mμ(i)superscriptsubscript𝐹2𝑖superscriptsubscript𝐹3𝑖superscriptsubscript𝐹superscript2𝑚𝜇𝑖F_{2}^{(i)},F_{3}^{(i)},\ldots,F_{2^{m-\mu}}^{(i)}italic_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , italic_F start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , … , italic_F start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_m - italic_μ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT are data symbols, then the following equation holds for i[t]𝑖delimited-[]𝑡i\in[t]italic_i ∈ [ italic_t ] by [13, Lemma 10].

F1(i)=superscriptsubscript𝐹1𝑖absent\displaystyle F_{1}^{(i)}=italic_F start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT = FFTX¯(i)(IFFTX¯(i)(F2(i),μ,ω2μ(i))++IFFTX¯(i)(F2mμ(i),μ,ω2m2μ(i)),μ,0).subscriptFFTsuperscript¯𝑋𝑖subscriptIFFTsuperscript¯𝑋𝑖superscriptsubscript𝐹2𝑖𝜇superscriptsubscript𝜔superscript2𝜇𝑖subscriptIFFTsuperscript¯𝑋𝑖superscriptsubscript𝐹superscript2𝑚𝜇𝑖𝜇superscriptsubscript𝜔superscript2𝑚superscript2𝜇𝑖𝜇0\displaystyle\text{FFT}_{\,\overline{\!{X}}^{(i)}}(\text{IFFT}_{\,\overline{\!% {X}}^{(i)}}(F_{2}^{(i)},\mu,\omega_{2^{\mu}}^{(i)})+\ldots+\text{IFFT}_{\,% \overline{\!{X}}^{(i)}}(F_{2^{m-\mu}}^{(i)},\mu,\omega_{2^{m}-2^{\mu}}^{(i)}),% \mu,0).FFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ( IFFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ( italic_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , italic_μ , italic_ω start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) + … + IFFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ( italic_F start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_m - italic_μ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , italic_μ , italic_ω start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT - 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) , italic_μ , 0 ) . (10)

By Eq. (9) and (10), we have

F1F1(i)FFTX¯(IFFTX¯(F2,μ,ω2μ)++IFFTX¯(F2mμ,μ,ω2m2μ),μ,0)(modpi(α)),subscript𝐹1superscriptsubscript𝐹1𝑖annotatedsubscriptFFT¯𝑋subscriptIFFT¯𝑋subscript𝐹2𝜇subscript𝜔superscript2𝜇subscriptIFFT¯𝑋subscript𝐹superscript2𝑚𝜇𝜇subscript𝜔superscript2𝑚superscript2𝜇𝜇0pmodsubscript𝑝𝑖𝛼F_{1}\equiv F_{1}^{(i)}\equiv\text{FFT}_{\,\overline{\!{X}}}(\text{IFFT}_{\,% \overline{\!{X}}}(F_{2},\mu,\omega_{2^{\mu}})+\ldots+\text{IFFT}_{\,\overline{% \!{X}}}(F_{2^{m-\mu}},\mu,\omega_{2^{m}-2^{\mu}}),\mu,0)\pmod{p_{i}(\alpha)},italic_F start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ≡ italic_F start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ≡ FFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG end_POSTSUBSCRIPT ( IFFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG end_POSTSUBSCRIPT ( italic_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_μ , italic_ω start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ) + … + IFFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG end_POSTSUBSCRIPT ( italic_F start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_m - italic_μ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT , italic_μ , italic_ω start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT - 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ) , italic_μ , 0 ) start_MODIFIER ( roman_mod start_ARG italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ) end_ARG ) end_MODIFIER ,

for i[t]𝑖delimited-[]𝑡i\in[t]italic_i ∈ [ italic_t ]. Therefore, the lemma is proved.

III-C Decoding Algorithm

In [4], there are two algorithms for decoding RS codes based on FFT and modular approach, i.e., the frequency-domain modular approach (FDMA) and the fast modular approach (FMA). In this section, we will generalize the FDMA algorithm to our codes, and a similar generalization can be applied to the FMA algorithm.

Assume that the received vector over psubscript𝑝\mathcal{R}_{p}caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT is represented as

r=F+e=(f(ω0),f(ω1),,f(ω2m1))+(e0,e1,,e2m1),𝑟𝐹𝑒𝑓subscript𝜔0𝑓subscript𝜔1𝑓subscript𝜔superscript2𝑚1subscript𝑒0subscript𝑒1subscript𝑒superscript2𝑚1\displaystyle r=F+e=(f(\omega_{0}),f(\omega_{1}),\ldots,f(\omega_{2^{m}-1}))+(% e_{0},e_{1},\ldots,e_{2^{m}-1}),italic_r = italic_F + italic_e = ( italic_f ( italic_ω start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) , italic_f ( italic_ω start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) , … , italic_f ( italic_ω start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT - 1 end_POSTSUBSCRIPT ) ) + ( italic_e start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_e start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_e start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT - 1 end_POSTSUBSCRIPT ) ,

where e=(e0,e1,,e2m1)𝑒subscript𝑒0subscript𝑒1subscript𝑒superscript2𝑚1e=(e_{0},e_{1},\ldots,e_{2^{m}-1})italic_e = ( italic_e start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_e start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_e start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT - 1 end_POSTSUBSCRIPT ) is the error pattern. Correspondingly, for i=1,2,,t𝑖12𝑡i=1,2,\ldots,titalic_i = 1 , 2 , … , italic_t, the received vector over the field 𝔽2[x]/(pi(x))subscript𝔽2delimited-[]𝑥subscript𝑝𝑖𝑥\mathbb{F}_{2}[x]/(p_{i}(x))blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) ) is represented as r(i)=F(i)+e(i)=(f(i)(ω0(i)),f(i)(ω1(i)),,f(i)(ω2m1(i)))+(e0(i),e1(i),,e2m1(i))superscript𝑟𝑖superscript𝐹𝑖superscript𝑒𝑖superscript𝑓𝑖superscriptsubscript𝜔0𝑖superscript𝑓𝑖superscriptsubscript𝜔1𝑖superscript𝑓𝑖superscriptsubscript𝜔superscript2𝑚1𝑖superscriptsubscript𝑒0𝑖superscriptsubscript𝑒1𝑖superscriptsubscript𝑒superscript2𝑚1𝑖r^{(i)}=F^{(i)}+e^{(i)}=(f^{(i)}(\omega_{0}^{(i)}),f^{(i)}(\omega_{1}^{(i)}),% \ldots,f^{(i)}(\omega_{2^{m}-1}^{(i)}))+(e_{0}^{(i)},e_{1}^{(i)},\ldots,e_{2^{% m}-1}^{(i)})italic_r start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT = italic_F start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT + italic_e start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT = ( italic_f start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_ω start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) , italic_f start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_ω start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) , … , italic_f start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_ω start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) ) + ( italic_e start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , italic_e start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , … , italic_e start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ), where e(i)=(e0(i),e1(i),,e2m1(i))superscript𝑒𝑖superscriptsubscript𝑒0𝑖superscriptsubscript𝑒1𝑖superscriptsubscript𝑒superscript2𝑚1𝑖e^{(i)}=(e_{0}^{(i)},e_{1}^{(i)},\ldots,e_{2^{m}-1}^{(i)})italic_e start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT = ( italic_e start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , italic_e start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , … , italic_e start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) and Φ(ej)=(ej(1),ej(2),,ej(t))Φsubscript𝑒𝑗superscriptsubscript𝑒𝑗1superscriptsubscript𝑒𝑗2superscriptsubscript𝑒𝑗𝑡\Phi(e_{j})=(e_{j}^{(1)},e_{j}^{(2)},\ldots,e_{j}^{(t)})roman_Φ ( italic_e start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ) = ( italic_e start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( 1 ) end_POSTSUPERSCRIPT , italic_e start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( 2 ) end_POSTSUPERSCRIPT , … , italic_e start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_t ) end_POSTSUPERSCRIPT ) for j=0,1,,𝑗01j=0,1,\ldots,italic_j = 0 , 1 , … ,
2m1superscript2𝑚12^{m}-12 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT - 1.

Since F(i)=(f(i)(ω0(i)),f(i)(ω1(i)),,f(i)(ω2m1(i)))superscript𝐹𝑖superscript𝑓𝑖superscriptsubscript𝜔0𝑖superscript𝑓𝑖superscriptsubscript𝜔1𝑖superscript𝑓𝑖superscriptsubscript𝜔superscript2𝑚1𝑖F^{(i)}=(f^{(i)}(\omega_{0}^{(i)}),f^{(i)}(\omega_{1}^{(i)}),\ldots,f^{(i)}(% \omega_{2^{m}-1}^{(i)}))italic_F start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT = ( italic_f start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_ω start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) , italic_f start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_ω start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) , … , italic_f start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_ω start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) ) is the codeword of RS codes over 𝔽2[x]/(pi(x))subscript𝔽2delimited-[]𝑥subscript𝑝𝑖𝑥\mathbb{F}_{2}[x]/(p_{i}(x))blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) ) for i=1,2,,t𝑖12𝑡i=1,2,\ldots,titalic_i = 1 , 2 , … , italic_t, the trivial approach is to use the FDMA algorithm in [4] to decode t𝑡titalic_t RS codes to obtain the codewords {F(i)}i[t]subscriptsuperscript𝐹𝑖𝑖delimited-[]𝑡\{F^{(i)}\}_{i\in[t]}{ italic_F start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT } start_POSTSUBSCRIPT italic_i ∈ [ italic_t ] end_POSTSUBSCRIPT, then use Φ1superscriptΦ1\Phi^{-1}roman_Φ start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT to obtain the original codeword F𝐹Fitalic_F. However, this method performs multiplication in the fields {𝔽2[x]/(pi(x))}i[t]subscriptsubscript𝔽2delimited-[]𝑥subscript𝑝𝑖𝑥𝑖delimited-[]𝑡\{\mathbb{F}_{2}[x]/(p_{i}(x))\}_{i\in[t]}{ blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) ) } start_POSTSUBSCRIPT italic_i ∈ [ italic_t ] end_POSTSUBSCRIPT, which has a higher multiplication complexity than in the cyclic polynomial ring. Our idea is to merge the decoding procedures over the t𝑡titalic_t fields {𝔽2[x]/(pi(x))}i[t]subscriptsubscript𝔽2delimited-[]𝑥subscript𝑝𝑖𝑥𝑖delimited-[]𝑡\{\mathbb{F}_{2}[x]/(p_{i}(x))\}_{i\in[t]}{ blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) ) } start_POSTSUBSCRIPT italic_i ∈ [ italic_t ] end_POSTSUBSCRIPT and perform all multiplications in the cyclic polynomial ring without the need for modular decomposition.

We will present the algorithm in five steps:

III-C1 Syndrome

For i[t]𝑖delimited-[]𝑡i\in[t]italic_i ∈ [ italic_t ] and l=0,1,,2m1𝑙01superscript2𝑚1l=0,1,\ldots,2^{m}-1italic_l = 0 , 1 , … , 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT - 1, define

plsubscript𝑝𝑙\displaystyle p_{l}italic_p start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT =s0(v0)l0s1(v1)l1sm1(vm1)lm1,absentsubscript𝑠0superscriptsubscript𝑣0subscript𝑙0subscript𝑠1superscriptsubscript𝑣1subscript𝑙1subscript𝑠𝑚1superscriptsubscript𝑣𝑚1subscript𝑙𝑚1\displaystyle=s_{0}(v_{0})^{l_{0}}s_{1}(v_{1})^{l_{1}}\ldots s_{m-1}(v_{m-1})^% {l_{m-1}},= italic_s start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ( italic_v start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT italic_l start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT italic_s start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( italic_v start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT italic_l start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT … italic_s start_POSTSUBSCRIPT italic_m - 1 end_POSTSUBSCRIPT ( italic_v start_POSTSUBSCRIPT italic_m - 1 end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT italic_l start_POSTSUBSCRIPT italic_m - 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT ,
pl(i)superscriptsubscript𝑝𝑙𝑖\displaystyle p_{l}^{(i)}italic_p start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT =s0(i)(v0(i))l0s1(i)(v1(i))l1sm1(i)(vm1(i))lm1,absentsuperscriptsubscript𝑠0𝑖superscriptsuperscriptsubscript𝑣0𝑖subscript𝑙0superscriptsubscript𝑠1𝑖superscriptsuperscriptsubscript𝑣1𝑖subscript𝑙1superscriptsubscript𝑠𝑚1𝑖superscriptsuperscriptsubscript𝑣𝑚1𝑖subscript𝑙𝑚1\displaystyle=s_{0}^{(i)}(v_{0}^{(i)})^{l_{0}}s_{1}^{(i)}(v_{1}^{(i)})^{l_{1}}% \ldots s_{m-1}^{(i)}(v_{m-1}^{(i)})^{l_{m-1}},= italic_s start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_v start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) start_POSTSUPERSCRIPT italic_l start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT italic_s start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_v start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) start_POSTSUPERSCRIPT italic_l start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT … italic_s start_POSTSUBSCRIPT italic_m - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_v start_POSTSUBSCRIPT italic_m - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) start_POSTSUPERSCRIPT italic_l start_POSTSUBSCRIPT italic_m - 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT ,

where (l0,l1,,lm1)subscript𝑙0subscript𝑙1subscript𝑙𝑚1(l_{0},l_{1},\ldots,l_{m-1})( italic_l start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_l start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_l start_POSTSUBSCRIPT italic_m - 1 end_POSTSUBSCRIPT ) is the binary representation of l𝑙litalic_l.

Denote the coordinate vector of the syndrome polynomial u(x)𝑢𝑥u(x)italic_u ( italic_x ) with respect to X¯¯𝑋\,\overline{\!{X}}over¯ start_ARG italic_X end_ARG as u¯¯𝑢\,\overline{\!{u}}over¯ start_ARG italic_u end_ARG, then combined with the following Lemma 5, we show that we can compute u¯¯𝑢\,\overline{\!{u}}over¯ start_ARG italic_u end_ARG by

u¯=i=02mμ1IFFTX¯(ri,μ,ωi2μ)/p2m2μ,¯𝑢superscriptsubscript𝑖0superscript2𝑚𝜇1subscriptIFFT¯𝑋subscript𝑟𝑖𝜇subscript𝜔𝑖superscript2𝜇subscript𝑝superscript2𝑚superscript2𝜇\,\overline{\!{u}}=\sum_{i=0}^{2^{m-\mu}-1}\text{IFFT}_{\,\overline{\!{X}}}(r_% {i},\mu,\omega_{i\cdot 2^{\mu}})/p_{2^{m}-2^{\mu}},over¯ start_ARG italic_u end_ARG = ∑ start_POSTSUBSCRIPT italic_i = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 start_POSTSUPERSCRIPT italic_m - italic_μ end_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT IFFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG end_POSTSUBSCRIPT ( italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_μ , italic_ω start_POSTSUBSCRIPT italic_i ⋅ 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ) / italic_p start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT - 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ,

where ri=(ri2μ,ri2μ+1,,ri2μ+2μ1)subscript𝑟𝑖subscript𝑟𝑖superscript2𝜇subscript𝑟𝑖superscript2𝜇1subscript𝑟𝑖superscript2𝜇superscript2𝜇1r_{i}=(r_{i\cdot 2^{\mu}},r_{i\cdot 2^{\mu}+1},\ldots,r_{i\cdot 2^{\mu}+2^{\mu% }-1})italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = ( italic_r start_POSTSUBSCRIPT italic_i ⋅ 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT , italic_r start_POSTSUBSCRIPT italic_i ⋅ 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT + 1 end_POSTSUBSCRIPT , … , italic_r start_POSTSUBSCRIPT italic_i ⋅ 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT + 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT - 1 end_POSTSUBSCRIPT ) for i=0,1,,2mμ1𝑖01superscript2𝑚𝜇1i=0,1,\ldots,2^{m-\mu}-1italic_i = 0 , 1 , … , 2 start_POSTSUPERSCRIPT italic_m - italic_μ end_POSTSUPERSCRIPT - 1. Subsequently, the syndrome
{u(ωi)}i=02μ1superscriptsubscript𝑢subscript𝜔𝑖𝑖0superscript2𝜇1\{u(\omega_{i})\}_{i=0}^{2^{\mu}-1}{ italic_u ( italic_ω start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) } start_POSTSUBSCRIPT italic_i = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT is computed by FFTX¯(u¯,μ,0)subscriptFFT¯𝑋¯𝑢𝜇0\text{FFT}_{\,\overline{\!{X}}}(\,\overline{\!{u}},\mu,0)FFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG end_POSTSUBSCRIPT ( over¯ start_ARG italic_u end_ARG , italic_μ , 0 ).

Next Lemma shows the relationship between the obtained syndromes and the corresponding syndromes of t𝑡titalic_t RS codes over fields.

Lemma 5.

For i=0,1,,t𝑖01𝑡i=0,1,\ldots,titalic_i = 0 , 1 , … , italic_t, denote u(i,field)(x)superscript𝑢𝑖𝑓𝑖𝑒𝑙𝑑𝑥u^{(i,field)}(x)italic_u start_POSTSUPERSCRIPT ( italic_i , italic_f italic_i italic_e italic_l italic_d ) end_POSTSUPERSCRIPT ( italic_x ) as the syndrome polynomial of the RS code over the field 𝔽2[x]/(pi(x))subscript𝔽2delimited-[]𝑥subscript𝑝𝑖𝑥\mathbb{F}_{2}[x]/(p_{i}(x))blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) ) whose coordinate vector with respect to X¯(i)superscript¯𝑋𝑖\,\overline{\!{X}}^{(i)}over¯ start_ARG italic_X end_ARG start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT is denoted as u(i,field)¯¯superscript𝑢𝑖𝑓𝑖𝑒𝑙𝑑\,\overline{\!{u^{(i,field)}}}over¯ start_ARG italic_u start_POSTSUPERSCRIPT ( italic_i , italic_f italic_i italic_e italic_l italic_d ) end_POSTSUPERSCRIPT end_ARG, then

u(ωj)u(i,field)(ωj(i))(modpi(α)),j=0,1,,2μ1.formulae-sequence𝑢subscript𝜔𝑗annotatedsuperscript𝑢𝑖𝑓𝑖𝑒𝑙𝑑superscriptsubscript𝜔𝑗𝑖pmodsubscript𝑝𝑖𝛼𝑗01superscript2𝜇1u(\omega_{j})\equiv u^{(i,field)}(\omega_{j}^{(i)})\pmod{p_{i}(\alpha)},j=0,1,% \ldots,2^{\mu}-1.italic_u ( italic_ω start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ) ≡ italic_u start_POSTSUPERSCRIPT ( italic_i , italic_f italic_i italic_e italic_l italic_d ) end_POSTSUPERSCRIPT ( italic_ω start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) start_MODIFIER ( roman_mod start_ARG italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ) end_ARG ) end_MODIFIER , italic_j = 0 , 1 , … , 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT - 1 .
Proof:

By [4, Eq.9], for i=1,2,,t𝑖12𝑡i=1,2,\ldots,titalic_i = 1 , 2 , … , italic_t, u(i,field)¯¯superscript𝑢𝑖𝑓𝑖𝑒𝑙𝑑\,\overline{\!{u^{(i,field)}}}over¯ start_ARG italic_u start_POSTSUPERSCRIPT ( italic_i , italic_f italic_i italic_e italic_l italic_d ) end_POSTSUPERSCRIPT end_ARG can be computed by

u(i,field)¯=j=02mμ1IFFTX¯(i)(rj(i),μ,ωj2μ(i))/p2m2μ(i),¯superscript𝑢𝑖𝑓𝑖𝑒𝑙𝑑superscriptsubscript𝑗0superscript2𝑚𝜇1subscriptIFFTsuperscript¯𝑋𝑖superscriptsubscript𝑟𝑗𝑖𝜇subscriptsuperscript𝜔𝑖𝑗superscript2𝜇subscriptsuperscript𝑝𝑖superscript2𝑚superscript2𝜇\displaystyle\,\overline{\!{u^{(i,field)}}}=\sum_{j=0}^{2^{m-\mu}-1}\text{IFFT% }_{\,\overline{\!{X}}^{(i)}}(r_{j}^{(i)},\mu,\omega^{(i)}_{j\cdot 2^{\mu}})/p^% {(i)}_{2^{m}-2^{\mu}},over¯ start_ARG italic_u start_POSTSUPERSCRIPT ( italic_i , italic_f italic_i italic_e italic_l italic_d ) end_POSTSUPERSCRIPT end_ARG = ∑ start_POSTSUBSCRIPT italic_j = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 start_POSTSUPERSCRIPT italic_m - italic_μ end_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT IFFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ( italic_r start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , italic_μ , italic_ω start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_j ⋅ 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ) / italic_p start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT - 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ,

where rj(i)=(rj2μ(i),rj2μ+1(i),,rj2μ+2μ1(i))superscriptsubscript𝑟𝑗𝑖superscriptsubscript𝑟𝑗superscript2𝜇𝑖superscriptsubscript𝑟𝑗superscript2𝜇1𝑖superscriptsubscript𝑟𝑗superscript2𝜇superscript2𝜇1𝑖r_{j}^{(i)}=(r_{j\cdot 2^{\mu}}^{(i)},r_{j\cdot 2^{\mu}+1}^{(i)},\ldots,r_{j% \cdot 2^{\mu}+2^{\mu}-1}^{(i)})italic_r start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT = ( italic_r start_POSTSUBSCRIPT italic_j ⋅ 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , italic_r start_POSTSUBSCRIPT italic_j ⋅ 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT + 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , … , italic_r start_POSTSUBSCRIPT italic_j ⋅ 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT + 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) for i=1,2,,t𝑖12𝑡i=1,2,\ldots,titalic_i = 1 , 2 , … , italic_t and j=0,1,,2mμ1𝑗01superscript2𝑚𝜇1j=0,1,\ldots,2^{m-\mu}-1italic_j = 0 , 1 , … , 2 start_POSTSUPERSCRIPT italic_m - italic_μ end_POSTSUPERSCRIPT - 1. For i=1,2,,t𝑖12𝑡i=1,2,\ldots,titalic_i = 1 , 2 , … , italic_t, applying Eq. (7) and (8) to the definition of u¯¯𝑢\,\overline{\!{u}}over¯ start_ARG italic_u end_ARG iteratively, we obtain

u¯j=02mμ1IFFTX¯(i)(rj(i),μ,ωj2μ(i))/p2m2μ(i)u(i,field)¯(modpi(α)),¯𝑢superscriptsubscript𝑗0superscript2𝑚𝜇1subscriptIFFTsuperscript¯𝑋𝑖superscriptsubscript𝑟𝑗𝑖𝜇subscriptsuperscript𝜔𝑖𝑗superscript2𝜇subscriptsuperscript𝑝𝑖superscript2𝑚superscript2𝜇annotated¯superscript𝑢𝑖𝑓𝑖𝑒𝑙𝑑pmodsubscript𝑝𝑖𝛼\displaystyle\,\overline{\!{u}}\equiv\sum_{j=0}^{2^{m-\mu}-1}\text{IFFT}_{\,% \overline{\!{X}}^{(i)}}(r_{j}^{(i)},\mu,\omega^{(i)}_{j\cdot 2^{\mu}})/p^{(i)}% _{2^{m}-2^{\mu}}\equiv\,\overline{\!{u^{(i,field)}}}\pmod{p_{i}(\alpha)},over¯ start_ARG italic_u end_ARG ≡ ∑ start_POSTSUBSCRIPT italic_j = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 start_POSTSUPERSCRIPT italic_m - italic_μ end_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT IFFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ( italic_r start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , italic_μ , italic_ω start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_j ⋅ 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ) / italic_p start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT - 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ≡ over¯ start_ARG italic_u start_POSTSUPERSCRIPT ( italic_i , italic_f italic_i italic_e italic_l italic_d ) end_POSTSUPERSCRIPT end_ARG start_MODIFIER ( roman_mod start_ARG italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ) end_ARG ) end_MODIFIER ,

Therefore, u(x)u(i,field)(x(i))(modpi(α))𝑢𝑥annotatedsuperscript𝑢𝑖𝑓𝑖𝑒𝑙𝑑superscript𝑥𝑖pmodsubscript𝑝𝑖𝛼u(x)\equiv u^{(i,field)}(x^{(i)})\pmod{p_{i}(\alpha)}italic_u ( italic_x ) ≡ italic_u start_POSTSUPERSCRIPT ( italic_i , italic_f italic_i italic_e italic_l italic_d ) end_POSTSUPERSCRIPT ( italic_x start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) start_MODIFIER ( roman_mod start_ARG italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ) end_ARG ) end_MODIFIER for i=1,2,,t𝑖12𝑡i=1,2,\ldots,titalic_i = 1 , 2 , … , italic_t and the lemma is proved. ∎

III-C2 Solving the Key Equation by FDMA

Given the syndrome {u(ωi)}i=0,1,,2μ1subscript𝑢subscript𝜔𝑖𝑖01superscript2𝜇1\{u(\omega_{i})\}_{i=0,1,\ldots,2^{\mu}-1}{ italic_u ( italic_ω start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) } start_POSTSUBSCRIPT italic_i = 0 , 1 , … , 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT - 1 end_POSTSUBSCRIPT, the FDMA algorithm outputs (λ(x),z(x))𝜆𝑥𝑧𝑥(\lambda(x),z(x))( italic_λ ( italic_x ) , italic_z ( italic_x ) ), where λ(x)𝜆𝑥\lambda(x)italic_λ ( italic_x ) is the error locator polynomial and z(x)𝑧𝑥z(x)italic_z ( italic_x ) is the error evaluation polynomial.

The FDMA algorithm corresponding to our codes is presented in Algorithm 2, in which 𝕀𝕀\mathbb{I}blackboard_I is the indicator function (i.e., 𝕀A(x)={x, if Ais true;0, if Ais false.subscript𝕀𝐴𝑥cases𝑥 if 𝐴is true;0 if 𝐴is false.\mathbb{I}_{A}(x)=\begin{cases}x,&\text{ if }A\ \text{is true;}\\ 0,&\text{ if }A\ \text{is false.}\end{cases}blackboard_I start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT ( italic_x ) = { start_ROW start_CELL italic_x , end_CELL start_CELL if italic_A is true; end_CELL end_ROW start_ROW start_CELL 0 , end_CELL start_CELL if italic_A is false. end_CELL end_ROW) and the extended IFFT algorithm is identical to [4, Algorithm 5]. In Algorithm 2, for i=1,2,,t𝑖12𝑡i=1,2,\ldots,titalic_i = 1 , 2 , … , italic_t and ri𝔽2[x]/(pi(x))subscript𝑟𝑖subscript𝔽2delimited-[]𝑥subscript𝑝𝑖𝑥r_{i}\in\mathbb{F}_{2}[x]/(p_{i}(x))italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ∈ blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) ), Φ1(r1,,rt)superscriptΦ1subscript𝑟1subscript𝑟𝑡\Phi^{-1}(r_{1},\ldots,r_{t})roman_Φ start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( italic_r start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_r start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ) can be computed as follows by the inverse mapping of the Chinese remainder theorem:

Φ1(r1,,rt)=i=1triMp(α)pi(α)[(Mp(α)pi(α))1]pi,superscriptΦ1subscript𝑟1subscript𝑟𝑡superscriptsubscript𝑖1𝑡subscript𝑟𝑖subscript𝑀𝑝𝛼subscript𝑝𝑖𝛼subscriptdelimited-[]superscriptsubscript𝑀𝑝𝛼subscript𝑝𝑖𝛼1subscript𝑝𝑖\Phi^{-1}(r_{1},\ldots,r_{t})=\sum_{i=1}^{t}r_{i}\cdot\frac{M_{p}(\alpha)}{p_{% i}(\alpha)}\left[\left(\frac{M_{p}(\alpha)}{p_{i}(\alpha)}\right)^{-1}\right]_% {p_{i}},roman_Φ start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( italic_r start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_r start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ) = ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_t end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ⋅ divide start_ARG italic_M start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ( italic_α ) end_ARG start_ARG italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ) end_ARG [ ( divide start_ARG italic_M start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ( italic_α ) end_ARG start_ARG italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ) end_ARG ) start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ] start_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT ,

where [(Mp(α)pi(α))1]pisubscriptdelimited-[]superscriptsubscript𝑀𝑝𝛼subscript𝑝𝑖𝛼1subscript𝑝𝑖\left[\left(\frac{M_{p}(\alpha)}{p_{i}(\alpha)}\right)^{-1}\right]_{p_{i}}[ ( divide start_ARG italic_M start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ( italic_α ) end_ARG start_ARG italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ) end_ARG ) start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ] start_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT represents the inverse of Mp(α)pi(α)subscript𝑀𝑝𝛼subscript𝑝𝑖𝛼\frac{M_{p}(\alpha)}{p_{i}(\alpha)}divide start_ARG italic_M start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ( italic_α ) end_ARG start_ARG italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ) end_ARG in 𝔽2[α]/(pi(α))subscript𝔽2delimited-[]𝛼subscript𝑝𝑖𝛼\mathbb{F}_{2}[\alpha]/(p_{i}(\alpha))blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_α ] / ( italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ) ). Since Mp(α)pi(α)[(Mp(α)pi(α))1]pisubscript𝑀𝑝𝛼subscript𝑝𝑖𝛼subscriptdelimited-[]superscriptsubscript𝑀𝑝𝛼subscript𝑝𝑖𝛼1subscript𝑝𝑖\frac{M_{p}(\alpha)}{p_{i}(\alpha)}\left[\left(\frac{M_{p}(\alpha)}{p_{i}(% \alpha)}\right)^{-1}\right]_{p_{i}}divide start_ARG italic_M start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ( italic_α ) end_ARG start_ARG italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ) end_ARG [ ( divide start_ARG italic_M start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ( italic_α ) end_ARG start_ARG italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ) end_ARG ) start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ] start_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT can be computed in advance, computing Φ1superscriptΦ1\Phi^{-1}roman_Φ start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT requires t𝑡titalic_t multiplications in psubscript𝑝\mathcal{R}_{p}caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT. The correctness of the extended IFFT algorithm used in Algorithm 2 can be proved similarly to the FFT algorithm.

The next Lemma 6 shows the relationship between the obtained error locator polynomial and the error evaluation polynomial to the corresponding two polynomials of t𝑡titalic_t RS codes over fields, which shows the rationality of our FDMA algorithm.

Algorithm 2 FDMA over psubscript𝑝\mathcal{R}_{p}caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT
1:{ωi,u(ωi)},i=0,1,,2μ1formulae-sequencesubscript𝜔𝑖𝑢subscript𝜔𝑖𝑖01superscript2𝜇1\{\omega_{i},u(\omega_{i})\},i=0,1,\ldots,2^{\mu}-1{ italic_ω start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_u ( italic_ω start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) } , italic_i = 0 , 1 , … , 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT - 1.
2:(λ(x),z(x))𝜆𝑥𝑧𝑥(\lambda(x),z(x))( italic_λ ( italic_x ) , italic_z ( italic_x ) ) that are represented with respect to X¯¯𝑋\,\overline{\!{X}}over¯ start_ARG italic_X end_ARG and rank[λ(i)(x),z(i)(x)superscript𝜆𝑖𝑥superscript𝑧𝑖𝑥\lambda^{(i)}(x),z^{(i)}(x)italic_λ start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_x ) , italic_z start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_x )], i[t]𝑖delimited-[]𝑡i\in[t]italic_i ∈ [ italic_t ].
3:Initialize: di0=u(ωi1)superscriptsubscript𝑑𝑖0𝑢subscript𝜔𝑖1d_{i}^{0}=u(\omega_{i-1})italic_d start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT = italic_u ( italic_ω start_POSTSUBSCRIPT italic_i - 1 end_POSTSUBSCRIPT ), gi0=1superscriptsubscript𝑔𝑖01g_{i}^{0}=1italic_g start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT = 1, for i=1,2,,2μ𝑖12superscript2𝜇i=1,2,\ldots,2^{\mu}italic_i = 1 , 2 , … , 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT, W(ωi)=0𝑊subscript𝜔𝑖0W(\omega_{i})=0italic_W ( italic_ω start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) = 0, V(ωi)=0𝑉subscript𝜔𝑖0V(\omega_{i})=0italic_V ( italic_ω start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) = 0, i=0,1,,2μ1𝑖01superscript2𝜇1i=0,1,\ldots,2^{\mu-1}italic_i = 0 , 1 , … , 2 start_POSTSUPERSCRIPT italic_μ - 1 end_POSTSUPERSCRIPT, r1,(k)0=0subscriptsuperscript𝑟01𝑘0r^{0}_{1,(k)}=0italic_r start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 , ( italic_k ) end_POSTSUBSCRIPT = 0, r2,(k)0=1subscriptsuperscript𝑟02𝑘1r^{0}_{2,(k)}=1italic_r start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 , ( italic_k ) end_POSTSUBSCRIPT = 1, k[t]𝑘delimited-[]𝑡k\in[t]italic_k ∈ [ italic_t ].
4:for j=1,2,,2μ𝑗12superscript2𝜇j=1,2,\ldots,2^{\mu}italic_j = 1 , 2 , … , 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT do
5:     for k=1,2,,t𝑘12𝑡k=1,2,\ldots,titalic_k = 1 , 2 , … , italic_t do
6:         if gjj10(modpk(α))superscriptsubscript𝑔𝑗𝑗1annotated0pmodsubscript𝑝𝑘𝛼g_{j}^{j-1}\equiv 0\pmod{p_{k}(\alpha)}italic_g start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j - 1 end_POSTSUPERSCRIPT ≡ 0 start_MODIFIER ( roman_mod start_ARG italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ( italic_α ) end_ARG ) end_MODIFIER or (djj10(modpk(α))superscriptsubscript𝑑𝑗𝑗1annotated0pmodsubscript𝑝𝑘𝛼d_{j}^{j-1}\equiv 0\pmod{p_{k}(\alpha)}italic_d start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j - 1 end_POSTSUPERSCRIPT ≡ 0 start_MODIFIER ( roman_mod start_ARG italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ( italic_α ) end_ARG ) end_MODIFIER and r1,(k)j1<r2,(k)j1superscriptsubscript𝑟1𝑘𝑗1superscriptsubscript𝑟2𝑘𝑗1r_{1,(k)}^{j-1}<r_{2,(k)}^{j-1}italic_r start_POSTSUBSCRIPT 1 , ( italic_k ) end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j - 1 end_POSTSUPERSCRIPT < italic_r start_POSTSUBSCRIPT 2 , ( italic_k ) end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j - 1 end_POSTSUPERSCRIPTthen
7:              Flag(k)=1superscriptFlag𝑘1\text{Flag}^{(k)}=1Flag start_POSTSUPERSCRIPT ( italic_k ) end_POSTSUPERSCRIPT = 1.
8:              r1,(k)j=r2,(k)j1subscriptsuperscript𝑟𝑗1𝑘subscriptsuperscript𝑟𝑗12𝑘r^{j}_{1,(k)}=r^{j-1}_{2,(k)}italic_r start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 , ( italic_k ) end_POSTSUBSCRIPT = italic_r start_POSTSUPERSCRIPT italic_j - 1 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 , ( italic_k ) end_POSTSUBSCRIPT, r2,(k)j=r1,(k)j1+2subscriptsuperscript𝑟𝑗2𝑘subscriptsuperscript𝑟𝑗11𝑘2r^{j}_{2,(k)}=r^{j-1}_{1,(k)}+2italic_r start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 , ( italic_k ) end_POSTSUBSCRIPT = italic_r start_POSTSUPERSCRIPT italic_j - 1 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 , ( italic_k ) end_POSTSUBSCRIPT + 2
9:         else
10:              Flag(k)=2superscriptFlag𝑘2\text{Flag}^{(k)}=2Flag start_POSTSUPERSCRIPT ( italic_k ) end_POSTSUPERSCRIPT = 2.
11:              r1,(k)j=r1,(k)j1subscriptsuperscript𝑟𝑗1𝑘subscriptsuperscript𝑟𝑗11𝑘r^{j}_{1,(k)}=r^{j-1}_{1,(k)}italic_r start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 , ( italic_k ) end_POSTSUBSCRIPT = italic_r start_POSTSUPERSCRIPT italic_j - 1 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 , ( italic_k ) end_POSTSUBSCRIPT, r2,(k)j=r2,(k)j1+2subscriptsuperscript𝑟𝑗2𝑘subscriptsuperscript𝑟𝑗12𝑘2r^{j}_{2,(k)}=r^{j-1}_{2,(k)}+2italic_r start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 , ( italic_k ) end_POSTSUBSCRIPT = italic_r start_POSTSUPERSCRIPT italic_j - 1 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 , ( italic_k ) end_POSTSUBSCRIPT + 2
12:         end if
13:         ψ21=Φ1(𝕀Flag(1)=1(ωi(1)ωj1(1)),𝕀Flag(2)=1(ωi(2)ωj1(2)),,𝕀Flag(t)=1(ωi(t)ωj1(t)))subscript𝜓21superscriptΦ1subscript𝕀superscriptFlag11superscriptsubscript𝜔𝑖1superscriptsubscript𝜔𝑗11subscript𝕀superscriptFlag21superscriptsubscript𝜔𝑖2superscriptsubscript𝜔𝑗12subscript𝕀superscriptFlag𝑡1superscriptsubscript𝜔𝑖𝑡superscriptsubscript𝜔𝑗1𝑡\psi_{21}=\Phi^{-1}(\mathbb{I}_{\text{Flag}^{(1)}=1}(\omega_{i}^{(1)}-\omega_{% j-1}^{(1)}),\mathbb{I}_{\text{Flag}^{(2)}=1}(\omega_{i}^{(2)}-\omega_{j-1}^{(2% )}),\ldots,\mathbb{I}_{\text{Flag}^{(t)}=1}(\omega_{i}^{(t)}-\omega_{j-1}^{(t)% }))italic_ψ start_POSTSUBSCRIPT 21 end_POSTSUBSCRIPT = roman_Φ start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( blackboard_I start_POSTSUBSCRIPT Flag start_POSTSUPERSCRIPT ( 1 ) end_POSTSUPERSCRIPT = 1 end_POSTSUBSCRIPT ( italic_ω start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( 1 ) end_POSTSUPERSCRIPT - italic_ω start_POSTSUBSCRIPT italic_j - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( 1 ) end_POSTSUPERSCRIPT ) , blackboard_I start_POSTSUBSCRIPT Flag start_POSTSUPERSCRIPT ( 2 ) end_POSTSUPERSCRIPT = 1 end_POSTSUBSCRIPT ( italic_ω start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( 2 ) end_POSTSUPERSCRIPT - italic_ω start_POSTSUBSCRIPT italic_j - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( 2 ) end_POSTSUPERSCRIPT ) , … , blackboard_I start_POSTSUBSCRIPT Flag start_POSTSUPERSCRIPT ( italic_t ) end_POSTSUPERSCRIPT = 1 end_POSTSUBSCRIPT ( italic_ω start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_t ) end_POSTSUPERSCRIPT - italic_ω start_POSTSUBSCRIPT italic_j - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_t ) end_POSTSUPERSCRIPT ) )
14:         ψ22=Φ1(𝕀Flag(1)=2(ωi(1)ωj1(1)),𝕀Flag(2)=2(ωi(2)ωj1(2)),,𝕀Flag(t)=2(ωi(t)ωj1(t)))subscript𝜓22superscriptΦ1subscript𝕀superscriptFlag12superscriptsubscript𝜔𝑖1superscriptsubscript𝜔𝑗11subscript𝕀superscriptFlag22superscriptsubscript𝜔𝑖2superscriptsubscript𝜔𝑗12subscript𝕀superscriptFlag𝑡2superscriptsubscript𝜔𝑖𝑡superscriptsubscript𝜔𝑗1𝑡\psi_{22}=\Phi^{-1}(\mathbb{I}_{\text{Flag}^{(1)}=2}(\omega_{i}^{(1)}-\omega_{% j-1}^{(1)}),\mathbb{I}_{\text{Flag}^{(2)}=2}(\omega_{i}^{(2)}-\omega_{j-1}^{(2% )}),\ldots,\mathbb{I}_{\text{Flag}^{(t)}=2}(\omega_{i}^{(t)}-\omega_{j-1}^{(t)% }))italic_ψ start_POSTSUBSCRIPT 22 end_POSTSUBSCRIPT = roman_Φ start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( blackboard_I start_POSTSUBSCRIPT Flag start_POSTSUPERSCRIPT ( 1 ) end_POSTSUPERSCRIPT = 2 end_POSTSUBSCRIPT ( italic_ω start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( 1 ) end_POSTSUPERSCRIPT - italic_ω start_POSTSUBSCRIPT italic_j - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( 1 ) end_POSTSUPERSCRIPT ) , blackboard_I start_POSTSUBSCRIPT Flag start_POSTSUPERSCRIPT ( 2 ) end_POSTSUPERSCRIPT = 2 end_POSTSUBSCRIPT ( italic_ω start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( 2 ) end_POSTSUPERSCRIPT - italic_ω start_POSTSUBSCRIPT italic_j - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( 2 ) end_POSTSUPERSCRIPT ) , … , blackboard_I start_POSTSUBSCRIPT Flag start_POSTSUPERSCRIPT ( italic_t ) end_POSTSUPERSCRIPT = 2 end_POSTSUBSCRIPT ( italic_ω start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_t ) end_POSTSUPERSCRIPT - italic_ω start_POSTSUBSCRIPT italic_j - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_t ) end_POSTSUPERSCRIPT ) )
15:         Ψj(ωi)subscriptΨ𝑗subscript𝜔𝑖\Psi_{j}(\omega_{i})roman_Ψ start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ( italic_ω start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT )=(gjj1djj1ψ21ψ22)matrixsuperscriptsubscript𝑔𝑗𝑗1superscriptsubscript𝑑𝑗𝑗1subscript𝜓21subscript𝜓22\begin{pmatrix}-g_{j}^{j-1}&d_{j}^{j-1}\\ \psi_{21}&\psi_{22}\end{pmatrix}( start_ARG start_ROW start_CELL - italic_g start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j - 1 end_POSTSUPERSCRIPT end_CELL start_CELL italic_d start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j - 1 end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL italic_ψ start_POSTSUBSCRIPT 21 end_POSTSUBSCRIPT end_CELL start_CELL italic_ψ start_POSTSUBSCRIPT 22 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ), i=0,1,..,2μ1i=0,1,..,2^{\mu}-1italic_i = 0 , 1 , . . , 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT - 1
16:     end for
17:     for i=j+1,j+2,,2μ𝑖𝑗1𝑗2superscript2𝜇i=j+1,j+2,\ldots,2^{\mu}italic_i = italic_j + 1 , italic_j + 2 , … , 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT do
18:         (dijgij)matrixsuperscriptsubscript𝑑𝑖𝑗superscriptsubscript𝑔𝑖𝑗\begin{pmatrix}d_{i}^{j}\\ g_{i}^{j}\end{pmatrix}( start_ARG start_ROW start_CELL italic_d start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL italic_g start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT end_CELL end_ROW end_ARG ) = Ψj(ωi1)subscriptΨ𝑗subscript𝜔𝑖1\Psi_{j}(\omega_{i-1})roman_Ψ start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ( italic_ω start_POSTSUBSCRIPT italic_i - 1 end_POSTSUBSCRIPT )(dij1gij1)matrixsuperscriptsubscript𝑑𝑖𝑗1superscriptsubscript𝑔𝑖𝑗1\begin{pmatrix}d_{i}^{j-1}\\ g_{i}^{j-1}\end{pmatrix}( start_ARG start_ROW start_CELL italic_d start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j - 1 end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL italic_g start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j - 1 end_POSTSUPERSCRIPT end_CELL end_ROW end_ARG )
19:     end for
20:     for i=0,1,,2μ1𝑖01superscript2𝜇1i=0,1,\ldots,2^{\mu-1}italic_i = 0 , 1 , … , 2 start_POSTSUPERSCRIPT italic_μ - 1 end_POSTSUPERSCRIPT do
21:         (W(ωi)V(ωi))matrix𝑊subscript𝜔𝑖𝑉subscript𝜔𝑖\begin{pmatrix}W(\omega_{i})\\ V(\omega_{i})\end{pmatrix}( start_ARG start_ROW start_CELL italic_W ( italic_ω start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) end_CELL end_ROW start_ROW start_CELL italic_V ( italic_ω start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) end_CELL end_ROW end_ARG ) = Ψj(ωi)subscriptΨ𝑗subscript𝜔𝑖\Psi_{j}(\omega_{i})roman_Ψ start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ( italic_ω start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT )(W(ωi)V(ωi))matrix𝑊subscript𝜔𝑖𝑉subscript𝜔𝑖\begin{pmatrix}W(\omega_{i})\\ V(\omega_{i})\end{pmatrix}( start_ARG start_ROW start_CELL italic_W ( italic_ω start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) end_CELL end_ROW start_ROW start_CELL italic_V ( italic_ω start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) end_CELL end_ROW end_ARG )
22:     end for
23:end for
24:for k=1,2,,t𝑘12𝑡k=1,2,\ldots,titalic_k = 1 , 2 , … , italic_t do
25:     if r1,(k)2μsuperscriptsubscript𝑟1𝑘superscript2𝜇r_{1,(k)}^{2^{\mu}}italic_r start_POSTSUBSCRIPT 1 , ( italic_k ) end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT end_POSTSUPERSCRIPT > r2,(k)2μsuperscriptsubscript𝑟2𝑘superscript2𝜇r_{2,(k)}^{2^{\mu}}italic_r start_POSTSUBSCRIPT 2 , ( italic_k ) end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT end_POSTSUPERSCRIPT then
26:         λ(k)(ωi)=V(ωi)superscript𝜆𝑘subscript𝜔𝑖𝑉subscript𝜔𝑖\lambda^{(k)}(\omega_{i})=V(\omega_{i})italic_λ start_POSTSUPERSCRIPT ( italic_k ) end_POSTSUPERSCRIPT ( italic_ω start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) = italic_V ( italic_ω start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ), i=0,1,,2μ1𝑖01superscript2𝜇1i=0,1,\ldots,2^{\mu-1}italic_i = 0 , 1 , … , 2 start_POSTSUPERSCRIPT italic_μ - 1 end_POSTSUPERSCRIPT.
27:     else
28:         λ(k)(ωi)=W(ωi)superscript𝜆𝑘subscript𝜔𝑖𝑊subscript𝜔𝑖\lambda^{(k)}(\omega_{i})=W(\omega_{i})italic_λ start_POSTSUPERSCRIPT ( italic_k ) end_POSTSUPERSCRIPT ( italic_ω start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) = italic_W ( italic_ω start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ), i=0,1,,2μ1𝑖01superscript2𝜇1i=0,1,\ldots,2^{\mu-1}italic_i = 0 , 1 , … , 2 start_POSTSUPERSCRIPT italic_μ - 1 end_POSTSUPERSCRIPT.
29:     end if
30:end for
31:λ(ωi)=Φ1(λ(1)(ωi),λ(2)(ωi),,λ(t)(ωi))𝜆subscript𝜔𝑖superscriptΦ1superscript𝜆1subscript𝜔𝑖superscript𝜆2subscript𝜔𝑖superscript𝜆𝑡subscript𝜔𝑖\lambda(\omega_{i})=\Phi^{-1}(\lambda^{(1)}(\omega_{i}),\lambda^{(2)}(\omega_{% i}),\ldots,\lambda^{(t)}(\omega_{i}))italic_λ ( italic_ω start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) = roman_Φ start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( italic_λ start_POSTSUPERSCRIPT ( 1 ) end_POSTSUPERSCRIPT ( italic_ω start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) , italic_λ start_POSTSUPERSCRIPT ( 2 ) end_POSTSUPERSCRIPT ( italic_ω start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) , … , italic_λ start_POSTSUPERSCRIPT ( italic_t ) end_POSTSUPERSCRIPT ( italic_ω start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) ), i=0,1,,2μ1𝑖01superscript2𝜇1i=0,1,\ldots,2^{\mu-1}italic_i = 0 , 1 , … , 2 start_POSTSUPERSCRIPT italic_μ - 1 end_POSTSUPERSCRIPT.
32:z(ωi)=λ(ωi)u(ωi)𝑧subscript𝜔𝑖𝜆subscript𝜔𝑖𝑢subscript𝜔𝑖z(\omega_{i})=\lambda(\omega_{i})u(\omega_{i})italic_z ( italic_ω start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) = italic_λ ( italic_ω start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) italic_u ( italic_ω start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ), i=0,1,,2μ1𝑖01superscript2𝜇1i=0,1,\ldots,2^{\mu-1}italic_i = 0 , 1 , … , 2 start_POSTSUPERSCRIPT italic_μ - 1 end_POSTSUPERSCRIPT.
33:λ(x)=extended IFFTX¯((λ(ω0),,λ(ω2μ1)),μ1,0)𝜆𝑥subscriptextended IFFT¯𝑋𝜆subscript𝜔0𝜆subscript𝜔superscript2𝜇1𝜇10\lambda(x)=\text{extended IFFT}_{\,\overline{\!{X}}}((\lambda(\omega_{0}),% \ldots,\lambda(\omega_{2^{\mu-1}})),\mu-1,0)italic_λ ( italic_x ) = extended IFFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG end_POSTSUBSCRIPT ( ( italic_λ ( italic_ω start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) , … , italic_λ ( italic_ω start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_μ - 1 end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ) ) , italic_μ - 1 , 0 )
34:z(x)=extended IFFTX¯((z(ω0),,z(ω2μ1)),μ1,0)𝑧𝑥subscriptextended IFFT¯𝑋𝑧subscript𝜔0𝑧subscript𝜔superscript2𝜇1𝜇10z(x)=\text{extended IFFT}_{\,\overline{\!{X}}}((z(\omega_{0}),\ldots,z(\omega_% {2^{\mu-1}})),\mu-1,0)italic_z ( italic_x ) = extended IFFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG end_POSTSUBSCRIPT ( ( italic_z ( italic_ω start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) , … , italic_z ( italic_ω start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_μ - 1 end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ) ) , italic_μ - 1 , 0 )
35:return (λ(x),z(x))𝜆𝑥𝑧𝑥(\lambda(x),z(x))( italic_λ ( italic_x ) , italic_z ( italic_x ) ) and rank[λ(i)(x),z(i)(x)superscript𝜆𝑖𝑥superscript𝑧𝑖𝑥\lambda^{(i)}(x),z^{(i)}(x)italic_λ start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_x ) , italic_z start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_x )]=min(r1,(i)2μsuperscriptsubscript𝑟1𝑖superscript2𝜇r_{1,(i)}^{2^{\mu}}italic_r start_POSTSUBSCRIPT 1 , ( italic_i ) end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT end_POSTSUPERSCRIPT,r2,(i)2μsuperscriptsubscript𝑟2𝑖superscript2𝜇r_{2,(i)}^{2^{\mu}}italic_r start_POSTSUBSCRIPT 2 , ( italic_i ) end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT end_POSTSUPERSCRIPT), i[t]𝑖delimited-[]𝑡i\in[t]italic_i ∈ [ italic_t ].
Lemma 6.

For i=1,2,,t𝑖12𝑡i=1,2,\ldots,titalic_i = 1 , 2 , … , italic_t, denote the error locator polynomial of RS codes over 𝔽2[x]/(pi(x))subscript𝔽2delimited-[]𝑥subscript𝑝𝑖𝑥\mathbb{F}_{2}[x]/(p_{i}(x))blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) ) as λ(i,field)(x)superscript𝜆𝑖𝑓𝑖𝑒𝑙𝑑𝑥\lambda^{(i,field)}(x)italic_λ start_POSTSUPERSCRIPT ( italic_i , italic_f italic_i italic_e italic_l italic_d ) end_POSTSUPERSCRIPT ( italic_x ) and denote the corresponding error evaluation polynomial as z(i,field)(x)superscript𝑧𝑖𝑓𝑖𝑒𝑙𝑑𝑥z^{(i,field)}(x)italic_z start_POSTSUPERSCRIPT ( italic_i , italic_f italic_i italic_e italic_l italic_d ) end_POSTSUPERSCRIPT ( italic_x ), then (λ(x),z(x))𝜆𝑥𝑧𝑥(\lambda(x),z(x))( italic_λ ( italic_x ) , italic_z ( italic_x ) ) obtained by our FDMA algorithm in Algorithm 2 satisfies:

λ(x)𝜆𝑥\displaystyle\lambda(x)italic_λ ( italic_x ) λ(i,field)(x(i))(modpi(α)),absentannotatedsuperscript𝜆𝑖𝑓𝑖𝑒𝑙𝑑superscript𝑥𝑖pmodsubscript𝑝𝑖𝛼\displaystyle\equiv\lambda^{(i,field)}(x^{(i)})\pmod{p_{i}(\alpha)},≡ italic_λ start_POSTSUPERSCRIPT ( italic_i , italic_f italic_i italic_e italic_l italic_d ) end_POSTSUPERSCRIPT ( italic_x start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) start_MODIFIER ( roman_mod start_ARG italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ) end_ARG ) end_MODIFIER ,
z(x)𝑧𝑥\displaystyle z(x)italic_z ( italic_x ) z(i,field)(x(i))(modpi(α)).absentannotatedsuperscript𝑧𝑖𝑓𝑖𝑒𝑙𝑑superscript𝑥𝑖pmodsubscript𝑝𝑖𝛼\displaystyle\equiv z^{(i,field)}(x^{(i)})\pmod{p_{i}(\alpha)}.≡ italic_z start_POSTSUPERSCRIPT ( italic_i , italic_f italic_i italic_e italic_l italic_d ) end_POSTSUPERSCRIPT ( italic_x start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) start_MODIFIER ( roman_mod start_ARG italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ) end_ARG ) end_MODIFIER .
Proof:

For i=1,2,,t𝑖12𝑡i=1,2,\ldots,titalic_i = 1 , 2 , … , italic_t, if all elements in the computation process are taken modulo pi(α)subscript𝑝𝑖𝛼p_{i}(\alpha)italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ) component-wise, the input is the same as the input for the FDMA algorithm over 𝔽2[x]/(pi(x))subscript𝔽2delimited-[]𝑥subscript𝑝𝑖𝑥\mathbb{F}_{2}[x]/(p_{i}(x))blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) ) as described in [4, Algorithm 4] due to Lemma 5. Furthermore, it can be verified that steps 1-30 are also the same as in the FDMA over 𝔽2[x]/(pi(x))subscript𝔽2delimited-[]𝑥subscript𝑝𝑖𝑥\mathbb{F}_{2}[x]/(p_{i}(x))blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) ) when taken modulo pi(α)subscript𝑝𝑖𝛼p_{i}(\alpha)italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ). Therefore, we obtain

λ(ωj)𝜆subscript𝜔𝑗\displaystyle\lambda(\omega_{j})italic_λ ( italic_ω start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ) λ(i,field)(ωj(i))(modpi(α)),absentannotatedsuperscript𝜆𝑖𝑓𝑖𝑒𝑙𝑑superscriptsubscript𝜔𝑗𝑖pmodsubscript𝑝𝑖𝛼\displaystyle\equiv\lambda^{(i,field)}(\omega_{j}^{(i)})\pmod{p_{i}(\alpha)},≡ italic_λ start_POSTSUPERSCRIPT ( italic_i , italic_f italic_i italic_e italic_l italic_d ) end_POSTSUPERSCRIPT ( italic_ω start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) start_MODIFIER ( roman_mod start_ARG italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ) end_ARG ) end_MODIFIER , (11)

where j=0,1,,2μ1𝑗01superscript2𝜇1j=0,1,\ldots,2^{\mu-1}italic_j = 0 , 1 , … , 2 start_POSTSUPERSCRIPT italic_μ - 1 end_POSTSUPERSCRIPT.

Similar to Eq. (7), we can obtain the following property of extended IFFT. For any fp[x]𝑓subscript𝑝delimited-[]𝑥f\in\mathcal{R}_{p}[x]italic_f ∈ caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT [ italic_x ] and i[t]𝑖delimited-[]𝑡i\in[t]italic_i ∈ [ italic_t ], the following holds:

extended IFFTX¯(f¯,μ,β)extended IFFTX¯(i)(f(i)¯,μ,β(i))(modpi(α)).subscriptextended IFFT¯𝑋¯𝑓𝜇𝛽annotatedsubscriptextended IFFTsuperscript¯𝑋𝑖¯superscript𝑓𝑖𝜇superscript𝛽𝑖pmodsubscript𝑝𝑖𝛼\displaystyle\text{extended IFFT}_{\,\overline{\!{X}}}(\,\overline{\!{f}},\mu,% \beta)\equiv\text{extended IFFT}_{\,\overline{\!{X}}^{(i)}}(\,\overline{\!{f^{% (i)}}},\mu,\beta^{(i)})\pmod{p_{i}(\alpha)}.extended IFFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG end_POSTSUBSCRIPT ( over¯ start_ARG italic_f end_ARG , italic_μ , italic_β ) ≡ extended IFFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ( over¯ start_ARG italic_f start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT end_ARG , italic_μ , italic_β start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) start_MODIFIER ( roman_mod start_ARG italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ) end_ARG ) end_MODIFIER . (12)

Therefore, combining Eq. (11) and Eq. (12), we have:

λ(x)=𝜆𝑥absent\displaystyle\lambda(x)=italic_λ ( italic_x ) = extended IFFTX¯((λ(ω0),,λ(ω2μ1)),μ1,0)subscriptextended IFFT¯𝑋𝜆subscript𝜔0𝜆subscript𝜔superscript2𝜇1𝜇10\displaystyle\text{extended IFFT}_{\,\overline{\!{X}}}((\lambda(\omega_{0}),% \ldots,\lambda(\omega_{2^{\mu-1}})),\mu-1,0)extended IFFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG end_POSTSUBSCRIPT ( ( italic_λ ( italic_ω start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) , … , italic_λ ( italic_ω start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_μ - 1 end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ) ) , italic_μ - 1 , 0 )
\displaystyle\equiv extended IFFTX¯(i)((λ(i,field)(ω0(i)),,λ(i,field)(ω2μ1(i))),μ1,0)subscriptextended IFFTsuperscript¯𝑋𝑖superscript𝜆𝑖𝑓𝑖𝑒𝑙𝑑superscriptsubscript𝜔0𝑖superscript𝜆𝑖𝑓𝑖𝑒𝑙𝑑subscriptsuperscript𝜔𝑖superscript2𝜇1𝜇10\displaystyle\text{extended IFFT}_{\,\overline{\!{X}}^{(i)}}((\lambda^{(i,% field)}(\omega_{0}^{(i)}),\ldots,\lambda^{(i,field)}(\omega^{(i)}_{2^{\mu-1}})% ),\mu-1,0)extended IFFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ( ( italic_λ start_POSTSUPERSCRIPT ( italic_i , italic_f italic_i italic_e italic_l italic_d ) end_POSTSUPERSCRIPT ( italic_ω start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) , … , italic_λ start_POSTSUPERSCRIPT ( italic_i , italic_f italic_i italic_e italic_l italic_d ) end_POSTSUPERSCRIPT ( italic_ω start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_μ - 1 end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ) ) , italic_μ - 1 , 0 )
\displaystyle\equiv λ(i,field)(x(i))(modpi(α)),annotatedsuperscript𝜆𝑖𝑓𝑖𝑒𝑙𝑑superscript𝑥𝑖pmodsubscript𝑝𝑖𝛼\displaystyle\lambda^{(i,field)}(x^{(i)})\pmod{p_{i}(\alpha)},italic_λ start_POSTSUPERSCRIPT ( italic_i , italic_f italic_i italic_e italic_l italic_d ) end_POSTSUPERSCRIPT ( italic_x start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) start_MODIFIER ( roman_mod start_ARG italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ) end_ARG ) end_MODIFIER ,

where the last equation is obtained by Step 23 in [4, Algorithm 4]. The equation for z(x)𝑧𝑥z(x)italic_z ( italic_x ) can be similarly proved.

III-C3 Chein search

The Chein search algorithm to find the error locations corresponding to our codes is given by Algorithm 3. Assuming the set of error locations for RS codes over the field 𝔽2[x]/(pi(x))subscript𝔽2delimited-[]𝑥subscript𝑝𝑖𝑥\mathbb{F}_{2}[x]/(p_{i}(x))blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) ) is denoted as E(i,true)superscript𝐸𝑖𝑡𝑟𝑢𝑒E^{(i,true)}italic_E start_POSTSUPERSCRIPT ( italic_i , italic_t italic_r italic_u italic_e ) end_POSTSUPERSCRIPT, and the set of error locations obtained by our Chein search algorithm is denoted as E(i)superscript𝐸𝑖E^{(i)}italic_E start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT for i[t]𝑖delimited-[]𝑡i\in[t]italic_i ∈ [ italic_t ].

Algorithm 3 Chein search algorithm over psubscript𝑝\mathcal{R}_{p}caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT
1:λ¯=(λ¯0,λ¯1,,λ¯2μ1)¯𝜆subscript¯𝜆0subscript¯𝜆1subscript¯𝜆superscript2𝜇1\,\overline{\!{\lambda}}=(\,\overline{\!{\lambda}}_{0},\,\overline{\!{\lambda}% }_{1},\ldots,\,\overline{\!{\lambda}}_{2^{\mu}-1})over¯ start_ARG italic_λ end_ARG = ( over¯ start_ARG italic_λ end_ARG start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , over¯ start_ARG italic_λ end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , over¯ start_ARG italic_λ end_ARG start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT - 1 end_POSTSUBSCRIPT )
2:the set of error locations E(i)superscript𝐸𝑖E^{(i)}italic_E start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT for i[t]𝑖delimited-[]𝑡i\in[t]italic_i ∈ [ italic_t ]
3:for l=0,1,,2mμ1𝑙01superscript2𝑚𝜇1l=0,1,\ldots,2^{m-\mu}-1italic_l = 0 , 1 , … , 2 start_POSTSUPERSCRIPT italic_m - italic_μ end_POSTSUPERSCRIPT - 1 do
4:     (λ(ωl2μ),,λ(ωl2μ+2μ1))𝜆subscript𝜔𝑙superscript2𝜇𝜆subscript𝜔𝑙superscript2𝜇superscript2𝜇1(\lambda(\omega_{l\cdot 2^{\mu}}),\ldots,\lambda(\omega_{l\cdot 2^{\mu}+2^{\mu% }-1}))( italic_λ ( italic_ω start_POSTSUBSCRIPT italic_l ⋅ 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ) , … , italic_λ ( italic_ω start_POSTSUBSCRIPT italic_l ⋅ 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT + 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT - 1 end_POSTSUBSCRIPT ) )=FFTX¯(λ¯,μ,ωl2μ)subscriptFFT¯𝑋¯𝜆𝜇subscript𝜔𝑙superscript2𝜇\text{FFT}_{\,\overline{\!{X}}}(\,\overline{\!{\lambda}},\mu,\omega_{l\cdot 2^% {\mu}})FFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG end_POSTSUBSCRIPT ( over¯ start_ARG italic_λ end_ARG , italic_μ , italic_ω start_POSTSUBSCRIPT italic_l ⋅ 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT )
5:     for i=1,2,,t𝑖12𝑡i=1,2,\ldots,titalic_i = 1 , 2 , … , italic_t do
6:         for j=l2μ,,l2μ+2μ1𝑗𝑙superscript2𝜇𝑙superscript2𝜇superscript2𝜇1j=l\cdot 2^{\mu},\ldots,l\cdot 2^{\mu}+2^{\mu}-1italic_j = italic_l ⋅ 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT , … , italic_l ⋅ 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT + 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT - 1 do
7:              if λ(ωj)0(modpi(α))𝜆subscript𝜔𝑗annotated0pmodsubscript𝑝𝑖𝛼\lambda(\omega_{j})\equiv 0\pmod{p_{i}(\alpha)}italic_λ ( italic_ω start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ) ≡ 0 start_MODIFIER ( roman_mod start_ARG italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ) end_ARG ) end_MODIFIER then
8:                  Add ωjsubscript𝜔𝑗\omega_{j}italic_ω start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT to the set E(i)superscript𝐸𝑖E^{(i)}italic_E start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT
9:              end if
10:         end for
11:     end for
12:end for
13:for i=1,2,,t𝑖12𝑡i=1,2,\ldots,titalic_i = 1 , 2 , … , italic_t do
14:     λ(i)(x)=λ(x)(modpi(α))superscript𝜆𝑖𝑥annotated𝜆𝑥pmodsubscript𝑝𝑖𝛼\lambda^{(i)}(x)=\lambda(x)\pmod{p_{i}(\alpha)}italic_λ start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_x ) = italic_λ ( italic_x ) start_MODIFIER ( roman_mod start_ARG italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ) end_ARG ) end_MODIFIER
15:     if deg(λ(i)(x))degsuperscript𝜆𝑖𝑥\text{deg}(\lambda^{(i)}(x))deg ( italic_λ start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_x ) ) > |E(i)|superscript𝐸𝑖|E^{(i)}|| italic_E start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT | then
16:         Uncorrectable error is detected, and the decoding procedure terminates.
17:     end if
18:end for

The next Lemma shows that E(i,true)=E(i)superscript𝐸𝑖𝑡𝑟𝑢𝑒superscript𝐸𝑖E^{(i,true)}=E^{(i)}italic_E start_POSTSUPERSCRIPT ( italic_i , italic_t italic_r italic_u italic_e ) end_POSTSUPERSCRIPT = italic_E start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT for i[t]𝑖delimited-[]𝑡i\in[t]italic_i ∈ [ italic_t ], which shows the rationality of our Chein search algorithm.

Lemma 7.

E(i,true)=E(i)superscript𝐸𝑖𝑡𝑟𝑢𝑒superscript𝐸𝑖E^{(i,true)}=E^{(i)}italic_E start_POSTSUPERSCRIPT ( italic_i , italic_t italic_r italic_u italic_e ) end_POSTSUPERSCRIPT = italic_E start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT for i[t]𝑖delimited-[]𝑡i\in[t]italic_i ∈ [ italic_t ].

Proof:

By Lemma 6, it can be deduced that λ(ωj)λ(i,field)(ωj(i))(modpi(α))𝜆subscript𝜔𝑗annotatedsuperscript𝜆𝑖𝑓𝑖𝑒𝑙𝑑superscriptsubscript𝜔𝑗𝑖pmodsubscript𝑝𝑖𝛼\lambda(\omega_{j})\equiv\lambda^{(i,field)}(\omega_{j}^{(i)})\pmod{p_{i}(% \alpha)}italic_λ ( italic_ω start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ) ≡ italic_λ start_POSTSUPERSCRIPT ( italic_i , italic_f italic_i italic_e italic_l italic_d ) end_POSTSUPERSCRIPT ( italic_ω start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) start_MODIFIER ( roman_mod start_ARG italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ) end_ARG ) end_MODIFIER for i=1,2,,t𝑖12𝑡i=1,2,\ldots,titalic_i = 1 , 2 , … , italic_t and j=0,1,,2m1𝑗01superscript2𝑚1j=0,1,\ldots,2^{m}-1italic_j = 0 , 1 , … , 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT - 1. Therefore, Algorithm 3 indeed computes the roots of λ(i,field)superscript𝜆𝑖𝑓𝑖𝑒𝑙𝑑\lambda^{(i,field)}italic_λ start_POSTSUPERSCRIPT ( italic_i , italic_f italic_i italic_e italic_l italic_d ) end_POSTSUPERSCRIPT on 𝔽2[x]/(pi(x))={ωj(i)}j=0,1,,2m1subscript𝔽2delimited-[]𝑥subscript𝑝𝑖𝑥subscriptsuperscriptsubscript𝜔𝑗𝑖𝑗01superscript2𝑚1\mathbb{F}_{2}[x]/(p_{i}(x))=\{\omega_{j}^{(i)}\}_{j=0,1,\ldots,2^{m}-1}blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) ) = { italic_ω start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT } start_POSTSUBSCRIPT italic_j = 0 , 1 , … , 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT - 1 end_POSTSUBSCRIPT for i[t]𝑖delimited-[]𝑡i\in[t]italic_i ∈ [ italic_t ], which are exactly the error locations for RS codes over 𝔽2[x]/(pi(x))subscript𝔽2delimited-[]𝑥subscript𝑝𝑖𝑥\mathbb{F}_{2}[x]/(p_{i}(x))blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) ). This establishes the proof that E(i,true)=E(i)superscript𝐸𝑖𝑡𝑟𝑢𝑒superscript𝐸𝑖E^{(i,true)}=E^{(i)}italic_E start_POSTSUPERSCRIPT ( italic_i , italic_t italic_r italic_u italic_e ) end_POSTSUPERSCRIPT = italic_E start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT for i[t]𝑖delimited-[]𝑡i\in[t]italic_i ∈ [ italic_t ]. ∎

III-C4 Formal Derivative

The algorithm for formal derivative is identical to that in [13], which computes the derivative λ(x)superscript𝜆𝑥\lambda^{\prime}(x)italic_λ start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_x ) of the error locator polynomial λ(x)𝜆𝑥\lambda(x)italic_λ ( italic_x ).

III-C5 Forney’s Formula

We present Forney’s formula for our codes to retrieve the original data symbols {gl}l=0k1={f(ωl)}l=2μ2m1superscriptsubscriptsubscript𝑔𝑙𝑙0𝑘1superscriptsubscript𝑓subscript𝜔𝑙𝑙superscript2𝜇superscript2𝑚1\{g_{l}\}_{l=0}^{k-1}=\{f(\omega_{l})\}_{l=2^{\mu}}^{2^{m}-1}{ italic_g start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT } start_POSTSUBSCRIPT italic_l = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_k - 1 end_POSTSUPERSCRIPT = { italic_f ( italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ) } start_POSTSUBSCRIPT italic_l = 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT as follows.

For l=2μ,2μ+1,,2m1𝑙superscript2𝜇superscript2𝜇1superscript2𝑚1l=2^{\mu},2^{\mu}+1,\ldots,2^{m}-1italic_l = 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT , 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT + 1 , … , 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT - 1, if ωliE(i)subscript𝜔𝑙subscript𝑖superscript𝐸𝑖\omega_{l}\notin\cup_{i}E^{(i)}italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ∉ ∪ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_E start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT, it implies that there is no error at ωlsubscript𝜔𝑙\omega_{l}italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT. Therefore, let f(ωl)=r(ωl)𝑓subscript𝜔𝑙𝑟subscript𝜔𝑙f(\omega_{l})=r(\omega_{l})italic_f ( italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ) = italic_r ( italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ). Otherwise, calculate h(ωl)=z(ωl)λ(ωl)sμ(ωl)subscript𝜔𝑙𝑧subscript𝜔𝑙superscript𝜆subscript𝜔𝑙subscript𝑠𝜇subscript𝜔𝑙h(\omega_{l})=\frac{z(\omega_{l})}{\lambda^{\prime}(\omega_{l})s_{\mu}(\omega_% {l})}italic_h ( italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ) = divide start_ARG italic_z ( italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ) end_ARG start_ARG italic_λ start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ( italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ) italic_s start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT ( italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ) end_ARG and e(ωl)=Φ1(𝕀lE(1)h(ωl),,𝕀lE(t)h(ωl))𝑒subscript𝜔𝑙superscriptΦ1subscript𝕀𝑙superscript𝐸1subscript𝜔𝑙subscript𝕀𝑙superscript𝐸𝑡subscript𝜔𝑙e(\omega_{l})=\Phi^{-1}(\mathbb{I}_{l\in E^{(1)}}h(\omega_{l}),\ldots,\mathbb{% I}_{l\in E^{(t)}}h(\omega_{l}))italic_e ( italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ) = roman_Φ start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( blackboard_I start_POSTSUBSCRIPT italic_l ∈ italic_E start_POSTSUPERSCRIPT ( 1 ) end_POSTSUPERSCRIPT end_POSTSUBSCRIPT italic_h ( italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ) , … , blackboard_I start_POSTSUBSCRIPT italic_l ∈ italic_E start_POSTSUPERSCRIPT ( italic_t ) end_POSTSUPERSCRIPT end_POSTSUBSCRIPT italic_h ( italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ) ), then let f(ωl)=r(ωl)+e(ωl)𝑓subscript𝜔𝑙𝑟subscript𝜔𝑙𝑒subscript𝜔𝑙f(\omega_{l})=r(\omega_{l})+e(\omega_{l})italic_f ( italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ) = italic_r ( italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ) + italic_e ( italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ). The next theorem shows that the obtained {f(ωl)}l=2μ2m1superscriptsubscript𝑓subscript𝜔𝑙𝑙superscript2𝜇superscript2𝑚1\{f(\omega_{l})\}_{l=2^{\mu}}^{2^{m}-1}{ italic_f ( italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ) } start_POSTSUBSCRIPT italic_l = 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT are indeed the original data symbols.

Theorem 8.

If the number of errors is no larger than the error correction capability, then our decoding algorithm can retrieve the original data symbols.

Proof:

It can be verified by Lemma 6 that the steps of Forney’s formula for our codes are equivalent to the following steps when taken modulo pi(α)subscript𝑝𝑖𝛼p_{i}(\alpha)italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ) for i=1,2,,t𝑖12𝑡i=1,2,\ldots,titalic_i = 1 , 2 , … , italic_t: For l=2μ,2μ+1,,2m1𝑙superscript2𝜇superscript2𝜇1superscript2𝑚1l=2^{\mu},2^{\mu}+1,\ldots,2^{m}-1italic_l = 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT , 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT + 1 , … , 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT - 1, if ωlE(i)subscript𝜔𝑙superscript𝐸𝑖\omega_{l}\in E^{(i)}italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ∈ italic_E start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT, then let f(ωl)=r(i)(ωl(i))+z(i)(ωl(i))λ(i)(ωl(i))sμ(i)(ωl(i))𝑓subscript𝜔𝑙superscript𝑟𝑖superscriptsubscript𝜔𝑙𝑖superscript𝑧𝑖superscriptsubscript𝜔𝑙𝑖superscript𝜆𝑖superscriptsubscript𝜔𝑙𝑖subscriptsuperscript𝑠𝑖𝜇superscriptsubscript𝜔𝑙𝑖f(\omega_{l})=r^{(i)}(\omega_{l}^{(i)})+\frac{z^{(i)}(\omega_{l}^{(i)})}{% \lambda^{(i)\prime}(\omega_{l}^{(i)})s^{(i)}_{\mu}(\omega_{l}^{(i)})}italic_f ( italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ) = italic_r start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) + divide start_ARG italic_z start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) end_ARG start_ARG italic_λ start_POSTSUPERSCRIPT ( italic_i ) ′ end_POSTSUPERSCRIPT ( italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) italic_s start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT ( italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) end_ARG, otherwise let f(ωl)=r(i)(ωl(i))𝑓subscript𝜔𝑙superscript𝑟𝑖superscriptsubscript𝜔𝑙𝑖f(\omega_{l})=r^{(i)}(\omega_{l}^{(i)})italic_f ( italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ) = italic_r start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ). By Lemma 7, the steps are indeed the procedure of Forney’s formula over the field 𝔽2[x]/(pi(x))subscript𝔽2delimited-[]𝑥subscript𝑝𝑖𝑥\mathbb{F}_{2}[x]/(p_{i}(x))blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) ) presented in [4]. Therefore for i=1,2,,t𝑖12𝑡i=1,2,\ldots,titalic_i = 1 , 2 , … , italic_t and l=2μ,2μ+1,,2m1𝑙superscript2𝜇superscript2𝜇1superscript2𝑚1l=2^{\mu},2^{\mu}+1,\ldots,2^{m}-1italic_l = 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT , 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT + 1 , … , 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT - 1, f(ωl)𝑓subscript𝜔𝑙f(\omega_{l})italic_f ( italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ) is the original data symbol of RS codes over 𝔽2[x]/(pi(x))subscript𝔽2delimited-[]𝑥subscript𝑝𝑖𝑥\mathbb{F}_{2}[x]/(p_{i}(x))blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) ) when taken modulo pi(α)subscript𝑝𝑖𝛼p_{i}(\alpha)italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ), i.e., f(ωl)f(i)(ωl(i))(modpi(α))𝑓subscript𝜔𝑙annotatedsuperscript𝑓𝑖superscriptsubscript𝜔𝑙𝑖pmodsubscript𝑝𝑖𝛼f(\omega_{l})\equiv f^{(i)}(\omega_{l}^{(i)})\pmod{p_{i}(\alpha)}italic_f ( italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ) ≡ italic_f start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) start_MODIFIER ( roman_mod start_ARG italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_α ) end_ARG ) end_MODIFIER, which implies that {f(ωl)}l=2μ2m1superscriptsubscript𝑓subscript𝜔𝑙𝑙superscript2𝜇superscript2𝑚1\{f(\omega_{l})\}_{l=2^{\mu}}^{2^{m}-1}{ italic_f ( italic_ω start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT ) } start_POSTSUBSCRIPT italic_l = 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT obtained by Forney’s formula are indeed the original data symbols of our codes. ∎

We can show that the asymptotic number of addition and multiplication operations involved in the encoding/decoding procedure of our codes is identical to [4].

IV Reduce Encoding/decoding complexity

In this section, we propose several methods to reduce encoding/decoding complexity by minimizing the XOR operations required for multiplication in the cyclic polynomial ring psubscript𝑝\mathcal{R}_{p}caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT.

IV-A Efficient Multiplication by Circular Shifts

Due to the equation 1+xp=(1+x)Mp(x)1superscript𝑥𝑝1𝑥subscript𝑀𝑝𝑥1+x^{p}=(1+x)M_{p}(x)1 + italic_x start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT = ( 1 + italic_x ) italic_M start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ( italic_x ) in 𝔽2[x]subscript𝔽2delimited-[]𝑥\mathbb{F}_{2}[x]blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ], all multiplication in the ring psubscript𝑝\mathcal{R}_{p}caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT during encoding/decoding procedure can be replaced with the multiplication in 𝔽2[x]/(1+xp)subscript𝔽2delimited-[]𝑥1superscript𝑥𝑝\mathbb{F}_{2}[x]/(1+x^{p})blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( 1 + italic_x start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT ). It is sufficient to take the final results of the encoding/decoding procedure modulo Mp(x)subscript𝑀𝑝𝑥M_{p}(x)italic_M start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ( italic_x ) to ensure the correctness of the outcomes. The multiplication in 𝔽2[x]/(1+xp)subscript𝔽2delimited-[]𝑥1superscript𝑥𝑝\mathbb{F}_{2}[x]/(1+x^{p})blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( 1 + italic_x start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT ) can be efficiently performed using circular shifts, as outlined in Algorithm 4, where [a]psubscriptdelimited-[]𝑎𝑝[a]_{p}[ italic_a ] start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT represents the integer b{0,1,,p1}𝑏01𝑝1b\in\{0,1,\ldots,p-1\}italic_b ∈ { 0 , 1 , … , italic_p - 1 } such that ab(modp)𝑎annotated𝑏pmod𝑝a\equiv b\pmod{p}italic_a ≡ italic_b start_MODIFIER ( roman_mod start_ARG italic_p end_ARG ) end_MODIFIER.

Algorithm 4 Multiplication in 𝔽2[x]/(1+xp)subscript𝔽2delimited-[]𝑥1superscript𝑥𝑝\mathbb{F}_{2}[x]/(1+x^{p})blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( 1 + italic_x start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT )
1:f(α)=i=0p1fiαi,g(α)=i=0p1giαiformulae-sequence𝑓𝛼superscriptsubscript𝑖0𝑝1subscript𝑓𝑖superscript𝛼𝑖𝑔𝛼superscriptsubscript𝑖0𝑝1subscript𝑔𝑖superscript𝛼𝑖f(\alpha)=\sum\limits_{i=0}^{p-1}f_{i}\alpha^{i},g(\alpha)=\sum\limits_{i=0}^{% p-1}g_{i}\alpha^{i}italic_f ( italic_α ) = ∑ start_POSTSUBSCRIPT italic_i = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_p - 1 end_POSTSUPERSCRIPT italic_f start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_α start_POSTSUPERSCRIPT italic_i end_POSTSUPERSCRIPT , italic_g ( italic_α ) = ∑ start_POSTSUBSCRIPT italic_i = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_p - 1 end_POSTSUPERSCRIPT italic_g start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_α start_POSTSUPERSCRIPT italic_i end_POSTSUPERSCRIPT
2:h(α)=i=0p1hiαi=f(α)g(α)𝛼superscriptsubscript𝑖0𝑝1subscript𝑖superscript𝛼𝑖𝑓𝛼𝑔𝛼h(\alpha)=\sum\limits_{i=0}^{p-1}h_{i}\alpha^{i}=f(\alpha)g(\alpha)italic_h ( italic_α ) = ∑ start_POSTSUBSCRIPT italic_i = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_p - 1 end_POSTSUPERSCRIPT italic_h start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_α start_POSTSUPERSCRIPT italic_i end_POSTSUPERSCRIPT = italic_f ( italic_α ) italic_g ( italic_α )
3:for i=0,1,,p1𝑖01𝑝1i=0,1,\ldots,p-1italic_i = 0 , 1 , … , italic_p - 1 do
4:     if fisubscript𝑓𝑖f_{i}italic_f start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = 1111 then
5:         for j=0,1,,p1𝑗01𝑝1j=0,1,\ldots,p-1italic_j = 0 , 1 , … , italic_p - 1 do
6:              h[i+j]p=h[i+j]p+gjsubscriptsubscriptdelimited-[]𝑖𝑗𝑝subscriptsubscriptdelimited-[]𝑖𝑗𝑝subscript𝑔𝑗h_{[i+j]_{p}}=h_{[i+j]_{p}}+g_{j}italic_h start_POSTSUBSCRIPT [ italic_i + italic_j ] start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT end_POSTSUBSCRIPT = italic_h start_POSTSUBSCRIPT [ italic_i + italic_j ] start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT end_POSTSUBSCRIPT + italic_g start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT
7:         end for
8:     end if
9:end for

In comparison to the field multiplication where additional modulo operations are required after polynomial multiplication, multiplication in the ring 𝔽2[x]/(1+xp)subscript𝔽2delimited-[]𝑥1superscript𝑥𝑝\mathbb{F}_{2}[x]/(1+x^{p})blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( 1 + italic_x start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT ) involves fewer XOR operations.

IV-B Preprocessing in the Ring 𝔽2[x]/(1+xp)subscript𝔽2delimited-[]𝑥1superscript𝑥𝑝\mathbb{F}_{2}[x]/(1+x^{p})blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( 1 + italic_x start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT )

According to Algorithm 4, the more zeros in the coefficients of f(α)𝔽2[x]/(1+xp)𝑓𝛼subscript𝔽2delimited-[]𝑥1superscript𝑥𝑝f(\alpha)\in\mathbb{F}_{2}[x]/(1+x^{p})italic_f ( italic_α ) ∈ blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( 1 + italic_x start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT ), the fewer XOR operations are needed. Therefore, we present the following preprocessing steps: Iterate through the p𝑝pitalic_p coefficients of f(α)𝑓𝛼f(\alpha)italic_f ( italic_α ) and count the number of zeros, denoted as n𝑛nitalic_n. If n<p2𝑛𝑝2n<\frac{p}{2}italic_n < divide start_ARG italic_p end_ARG start_ARG 2 end_ARG, then let f1(α)=f(α)+Mp(α)subscript𝑓1𝛼𝑓𝛼subscript𝑀𝑝𝛼f_{1}(\alpha)=f(\alpha)+M_{p}(\alpha)italic_f start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( italic_α ) = italic_f ( italic_α ) + italic_M start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ( italic_α ) and replace f𝑓fitalic_f with f1subscript𝑓1f_{1}italic_f start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT, resulting in pn𝑝𝑛p-nitalic_p - italic_n zeros in the coefficients of f1(α)subscript𝑓1𝛼f_{1}(\alpha)italic_f start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( italic_α ), which is more than before preprocessing. Since f(α)g(α)f1(α)g(α)(modMp(α))𝑓𝛼𝑔𝛼annotatedsubscript𝑓1𝛼𝑔𝛼pmodsubscript𝑀𝑝𝛼f(\alpha)g(\alpha)\equiv f_{1}(\alpha)g(\alpha)\pmod{M_{p}(\alpha)}italic_f ( italic_α ) italic_g ( italic_α ) ≡ italic_f start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( italic_α ) italic_g ( italic_α ) start_MODIFIER ( roman_mod start_ARG italic_M start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ( italic_α ) end_ARG ) end_MODIFIER holds, the preprocessing does not affect the correctness.

We categorize all multiplications into two cases. In the first case, both factors are dependent on the received codeword and such multiplications are only computed during the FDMA algorithm when calculating gj1jdij1superscriptsubscript𝑔𝑗1𝑗subscriptsuperscript𝑑𝑗1𝑖g_{j-1}^{j}d^{j-1}_{i}italic_g start_POSTSUBSCRIPT italic_j - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT italic_d start_POSTSUPERSCRIPT italic_j - 1 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT and dj1jgij1superscriptsubscript𝑑𝑗1𝑗subscriptsuperscript𝑔𝑗1𝑖d_{j-1}^{j}g^{j-1}_{i}italic_d start_POSTSUBSCRIPT italic_j - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT italic_g start_POSTSUPERSCRIPT italic_j - 1 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT. For this case, it is sufficient to preprocess gj1jsuperscriptsubscript𝑔𝑗1𝑗g_{j-1}^{j}italic_g start_POSTSUBSCRIPT italic_j - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT and dj1jsuperscriptsubscript𝑑𝑗1𝑗d_{j-1}^{j}italic_d start_POSTSUBSCRIPT italic_j - 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_j end_POSTSUPERSCRIPT for j=1,2,,2μ𝑗12superscript2𝜇j=1,2,\ldots,2^{\mu}italic_j = 1 , 2 , … , 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT. The XOR operations involved in preprocessing are counted in the decoding procedure. In the second case, at least one of the factors is independent of the received codeword and can be computed in advance. For example, when performing FFT algorithm in Algorithm 1, the factor sτ1(β)sτ1(vτ1)subscript𝑠𝜏1𝛽subscript𝑠𝜏1subscript𝑣𝜏1\frac{s_{\tau-1}(\beta)}{s_{\tau-1}(v_{\tau-1})}divide start_ARG italic_s start_POSTSUBSCRIPT italic_τ - 1 end_POSTSUBSCRIPT ( italic_β ) end_ARG start_ARG italic_s start_POSTSUBSCRIPT italic_τ - 1 end_POSTSUBSCRIPT ( italic_v start_POSTSUBSCRIPT italic_τ - 1 end_POSTSUBSCRIPT ) end_ARG can be computed in advance. Therefore, we preprocess the factor sτ1(β)sτ1(vτ1)subscript𝑠𝜏1𝛽subscript𝑠𝜏1subscript𝑣𝜏1\frac{s_{\tau-1}(\beta)}{s_{\tau-1}(v_{\tau-1})}divide start_ARG italic_s start_POSTSUBSCRIPT italic_τ - 1 end_POSTSUBSCRIPT ( italic_β ) end_ARG start_ARG italic_s start_POSTSUBSCRIPT italic_τ - 1 end_POSTSUBSCRIPT ( italic_v start_POSTSUBSCRIPT italic_τ - 1 end_POSTSUBSCRIPT ) end_ARG and the additional XOR operations required are not counted in the encoding/decoding procedure.

IV-C Selection of vj(i)superscriptsubscript𝑣𝑗𝑖v_{j}^{(i)}italic_v start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT

Since the selection of vj(i)superscriptsubscript𝑣𝑗𝑖v_{j}^{(i)}italic_v start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT for j=0,1,,m1𝑗01𝑚1j=0,1,\ldots,m-1italic_j = 0 , 1 , … , italic_m - 1 and i=1,2,,t𝑖12𝑡i=1,2,\ldots,titalic_i = 1 , 2 , … , italic_t only needs to satisfy the conditions given in II-A, and throughout the encoding/decoding procedure, the majority of multiplications stem from FFT and IFFT, with nearly identical parameters. Therefore, a meticulous choice of vj(i)superscriptsubscript𝑣𝑗𝑖v_{j}^{(i)}italic_v start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT for j=0,1,,m1𝑗01𝑚1j=0,1,\ldots,m-1italic_j = 0 , 1 , … , italic_m - 1 and i=1,2,,t𝑖12𝑡i=1,2,\ldots,titalic_i = 1 , 2 , … , italic_t will be introduced to reduce the number of XORs required for the multiplication in the FFT and IFFT algorithms.

Taking the computation of the syndrome as an example, it involves calculating IFFTX¯(ri,μ,ωi2μ)subscriptIFFT¯𝑋subscript𝑟𝑖𝜇subscript𝜔𝑖superscript2𝜇\text{IFFT}_{\,\overline{\!{X}}}(r_{i},\mu,\omega_{i\cdot 2^{\mu}})IFFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG end_POSTSUBSCRIPT ( italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_μ , italic_ω start_POSTSUBSCRIPT italic_i ⋅ 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ) for i=0,1,,2mμ1𝑖01superscript2𝑚𝜇1i=0,1,\ldots,2^{m-\mu}-1italic_i = 0 , 1 , … , 2 start_POSTSUPERSCRIPT italic_m - italic_μ end_POSTSUPERSCRIPT - 1. For each i𝑖iitalic_i, there are a total of 12μ2μ12𝜇superscript2𝜇\frac{1}{2}\mu 2^{\mu}divide start_ARG 1 end_ARG start_ARG 2 end_ARG italic_μ 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT multiplications in IFFTX¯(ri,μ,ωi2μ)subscriptIFFT¯𝑋subscript𝑟𝑖𝜇subscript𝜔𝑖superscript2𝜇\text{IFFT}_{\,\overline{\!{X}}}(r_{i},\mu,\omega_{i\cdot 2^{\mu}})IFFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG end_POSTSUBSCRIPT ( italic_r start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_μ , italic_ω start_POSTSUBSCRIPT italic_i ⋅ 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ). Each multiplication involves a factor of the form sτ1(β)sτ1(vτ1)subscript𝑠𝜏1𝛽subscript𝑠𝜏1subscript𝑣𝜏1\frac{s_{\tau-1}(\beta)}{s_{\tau-1}(v_{\tau-1})}divide start_ARG italic_s start_POSTSUBSCRIPT italic_τ - 1 end_POSTSUBSCRIPT ( italic_β ) end_ARG start_ARG italic_s start_POSTSUBSCRIPT italic_τ - 1 end_POSTSUBSCRIPT ( italic_v start_POSTSUBSCRIPT italic_τ - 1 end_POSTSUBSCRIPT ) end_ARG, where τ=1,,μ𝜏1𝜇\tau=1,\ldots,\muitalic_τ = 1 , … , italic_μ. Assuming cβsubscript𝑐𝛽c_{\beta}italic_c start_POSTSUBSCRIPT italic_β end_POSTSUBSCRIPT represents the sum of the number of non-zero coefficients of sτ1(β)sτ1(vτ1)subscript𝑠𝜏1𝛽subscript𝑠𝜏1subscript𝑣𝜏1\frac{s_{\tau-1}(\beta)}{s_{\tau-1}(v_{\tau-1})}divide start_ARG italic_s start_POSTSUBSCRIPT italic_τ - 1 end_POSTSUBSCRIPT ( italic_β ) end_ARG start_ARG italic_s start_POSTSUBSCRIPT italic_τ - 1 end_POSTSUBSCRIPT ( italic_v start_POSTSUBSCRIPT italic_τ - 1 end_POSTSUBSCRIPT ) end_ARG after preprocessing in all multiplications during the calculation of IFFTX¯(r0,μ,β)subscriptIFFT¯𝑋subscript𝑟0𝜇𝛽\text{IFFT}_{\,\overline{\!{X}}}(r_{0},\mu,\beta)IFFT start_POSTSUBSCRIPT over¯ start_ARG italic_X end_ARG end_POSTSUBSCRIPT ( italic_r start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_μ , italic_β ), where the first parameter r0subscript𝑟0r_{0}italic_r start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT in IFFT is independent of cβsubscript𝑐𝛽c_{\beta}italic_c start_POSTSUBSCRIPT italic_β end_POSTSUBSCRIPT. The objective is to minimize i=02mμ1cωi2μsuperscriptsubscript𝑖0superscript2𝑚𝜇1subscript𝑐subscript𝜔𝑖superscript2𝜇\sum\limits_{i=0}^{2^{m-\mu}-1}c_{\omega_{i\cdot 2^{\mu}}}∑ start_POSTSUBSCRIPT italic_i = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 start_POSTSUPERSCRIPT italic_m - italic_μ end_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_c start_POSTSUBSCRIPT italic_ω start_POSTSUBSCRIPT italic_i ⋅ 2 start_POSTSUPERSCRIPT italic_μ end_POSTSUPERSCRIPT end_POSTSUBSCRIPT end_POSTSUBSCRIPT. The variables are the bases {vj(i)}j=0,1,,m1subscriptsuperscriptsubscript𝑣𝑗𝑖𝑗01𝑚1\{v_{j}^{(i)}\}_{j=0,1,\ldots,m-1}{ italic_v start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT } start_POSTSUBSCRIPT italic_j = 0 , 1 , … , italic_m - 1 end_POSTSUBSCRIPT, where i=1,2,,t𝑖12𝑡i=1,2,\ldots,titalic_i = 1 , 2 , … , italic_t.

When the parameters m𝑚mitalic_m and μ𝜇\muitalic_μ of the code are small, an exhaustive algorithm can be employed. Otherwise, we start by randomly choosing {vj(i)}j=0,1,,μ1subscriptsuperscriptsubscript𝑣𝑗𝑖𝑗01𝜇1\{v_{j}^{(i)}\}_{j=0,1,\ldots,\mu-1}{ italic_v start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT } start_POSTSUBSCRIPT italic_j = 0 , 1 , … , italic_μ - 1 end_POSTSUBSCRIPT for i=1,2,,t𝑖12𝑡i=1,2,\ldots,titalic_i = 1 , 2 , … , italic_t to determine the expression of sμ1(x)subscript𝑠𝜇1𝑥s_{\mu-1}(x)italic_s start_POSTSUBSCRIPT italic_μ - 1 end_POSTSUBSCRIPT ( italic_x ) and the value of vμ1subscript𝑣𝜇1v_{\mu-1}italic_v start_POSTSUBSCRIPT italic_μ - 1 end_POSTSUBSCRIPT. The subsequent bases for j=μ,,m1𝑗𝜇𝑚1j=\mu,\ldots,m-1italic_j = italic_μ , … , italic_m - 1 can be determined by the following approximate algorithm. Let r0=argminrpcrsubscript𝑟0subscriptargmin𝑟subscript𝑝subscript𝑐𝑟r_{0}=\operatorname*{argmin}_{r\in\mathcal{R}_{p}}c_{r}italic_r start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = roman_argmin start_POSTSUBSCRIPT italic_r ∈ caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT end_POSTSUBSCRIPT italic_c start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT. If r0(i)superscriptsubscript𝑟0𝑖r_{0}^{(i)}italic_r start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT is linearly independent of {vj(i),j=0,1,,μ1}formulae-sequencesuperscriptsubscript𝑣𝑗𝑖𝑗01𝜇1\{v_{j}^{(i)},j=0,1,\ldots,\mu-1\}{ italic_v start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT , italic_j = 0 , 1 , … , italic_μ - 1 } for all i[t]𝑖delimited-[]𝑡i\in[t]italic_i ∈ [ italic_t ], then set vμ(i)=r0(i)superscriptsubscript𝑣𝜇𝑖superscriptsubscript𝑟0𝑖v_{\mu}^{(i)}=r_{0}^{(i)}italic_v start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT = italic_r start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT for i=1,2,,t𝑖12𝑡i=1,2,\ldots,titalic_i = 1 , 2 , … , italic_t. Otherwise, select the r𝑟ritalic_r that has the second smallest crsubscript𝑐𝑟c_{r}italic_c start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT and check if it satisfies the condition. Continue this process until all bases are determined.

V Comparison of encoding/decoding complexity

In this section, we compare the encoding/decoding complexity of our codes with RS codes over finite fields presented in [4]. First, we discuss the parameters.

psubscript𝑝\mathcal{R}_{p}caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT is a field if and only if 2222 is a primitive element in 𝔽psubscript𝔽𝑝\mathbb{F}_{p}blackboard_F start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT [6], which occurs when p=3,5,11,13,19,𝑝35111319p=3,5,11,13,19,\cdotsitalic_p = 3 , 5 , 11 , 13 , 19 , ⋯. In this case, we can directly apply the encoding/decoding algorithms for RS codes over fields in [4] and reduce encoding/decoding complexity by the methods discussed in Section IV. Now, we consider the case when psubscript𝑝\mathcal{R}_{p}caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT is not a field. The code lengths of our codes for different p𝑝pitalic_p are shown in Table I.

TABLE I: The code lengths of our codes for different p𝑝pitalic_p.
p𝑝pitalic_p 7 9 15 17 21 23 25
Code Length 23superscript232^{3}2 start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT 22superscript222^{2}2 start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT 22superscript222^{2}2 start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT 28superscript282^{8}2 start_POSTSUPERSCRIPT 8 end_POSTSUPERSCRIPT 22superscript222^{2}2 start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT 211superscript2112^{11}2 start_POSTSUPERSCRIPT 11 end_POSTSUPERSCRIPT 24superscript242^{4}2 start_POSTSUPERSCRIPT 4 end_POSTSUPERSCRIPT

Due to the code length being much smaller than the size of the ring psubscript𝑝\mathcal{R}_{p}caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT when the irreducible factorization of Mp(x)=i=1tpi(x)subscript𝑀𝑝𝑥superscriptsubscriptproduct𝑖1𝑡subscript𝑝𝑖𝑥M_{p}(x)=\prod\limits_{i=1}^{t}p_{i}(x)italic_M start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ( italic_x ) = ∏ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_t end_POSTSUPERSCRIPT italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_x ) has a large t𝑡titalic_t, we find that there is no benefit in using our codes in such cases through numerical experiments. Therefore, the subsequent discussion focuses the case of t=2𝑡2t=2italic_t = 2 and deg(p1(x))=deg(p2(x))degreesubscript𝑝1𝑥degreesubscript𝑝2𝑥\deg(p_{1}(x))=\deg(p_{2}(x))roman_deg ( italic_p start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( italic_x ) ) = roman_deg ( italic_p start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( italic_x ) ), corresponding to p=7,17,23,𝑝71723p=7,17,23,\cdotsitalic_p = 7 , 17 , 23 , ⋯.

We compare the encoding/decoding complexity for our codes with RS codes over finite fields presented in [4]. Considering the parameters of our codes: Since |p|=2p1subscript𝑝superscript2𝑝1|\mathcal{R}_{p}|=2^{p-1}| caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT | = 2 start_POSTSUPERSCRIPT italic_p - 1 end_POSTSUPERSCRIPT, each data symbol has p1𝑝1p-1italic_p - 1 bits, and the code length is 2p12superscript2𝑝122^{\frac{p-1}{2}}2 start_POSTSUPERSCRIPT divide start_ARG italic_p - 1 end_ARG start_ARG 2 end_ARG end_POSTSUPERSCRIPT. For the comparison, RS codes over finite fields have two options. The first option is to take RS codes defined over 𝔽2p1subscript𝔽superscript2𝑝1\mathbb{F}_{2^{p-1}}blackboard_F start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_p - 1 end_POSTSUPERSCRIPT end_POSTSUBSCRIPT, satisfying |𝔽2p1|=|p|subscript𝔽superscript2𝑝1subscript𝑝|\mathbb{F}_{2^{p-1}}|=|\mathcal{R}_{p}|| blackboard_F start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_p - 1 end_POSTSUPERSCRIPT end_POSTSUBSCRIPT | = | caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT |, and the code length can reach 2p12superscript2𝑝122^{\frac{p-1}{2}}2 start_POSTSUPERSCRIPT divide start_ARG italic_p - 1 end_ARG start_ARG 2 end_ARG end_POSTSUPERSCRIPT. The second option is to divide each data symbol into two parts, each having p12𝑝12\frac{p-1}{2}divide start_ARG italic_p - 1 end_ARG start_ARG 2 end_ARG bits. This enables encoding/decoding using two RS codes over 𝔽2p12subscript𝔽superscript2𝑝12\mathbb{F}_{2^{\frac{p-1}{2}}}blackboard_F start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT divide start_ARG italic_p - 1 end_ARG start_ARG 2 end_ARG end_POSTSUPERSCRIPT end_POSTSUBSCRIPT with the resulting data symbols, and each RS code can achieve a code length of 2p12superscript2𝑝122^{\frac{p-1}{2}}2 start_POSTSUPERSCRIPT divide start_ARG italic_p - 1 end_ARG start_ARG 2 end_ARG end_POSTSUPERSCRIPT. We choose the second approach for comparison because it possesses lower encoding/decoding complexity.

For the parameters p=23𝑝23p=23italic_p = 23, m=11𝑚11m=11italic_m = 11, and μ=6𝜇6\mu=6italic_μ = 6, we consider our (2048, 1984) RS code over 23=𝔽2[x]/(1+x++x22)subscript23subscript𝔽2delimited-[]𝑥1𝑥superscript𝑥22\mathcal{R}_{23}=\mathbb{F}_{2}[x]/(1+x+\ldots+x^{22})caligraphic_R start_POSTSUBSCRIPT 23 end_POSTSUBSCRIPT = blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( 1 + italic_x + … + italic_x start_POSTSUPERSCRIPT 22 end_POSTSUPERSCRIPT ). The encoding and decoding procedures are performed as described in Section III and IV. For comparison, two (2048, 1984) RS codes over 𝔽2[x]/(1+x2+x11)subscript𝔽2delimited-[]𝑥1superscript𝑥2superscript𝑥11\mathbb{F}_{2}[x]/(1+x^{2}+x^{11})blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( 1 + italic_x start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_x start_POSTSUPERSCRIPT 11 end_POSTSUPERSCRIPT ) are selected, using the encoding/decoding algorithms described in [4]. The choice of the irreducible polynomial 1+x2+x111superscript𝑥2superscript𝑥111+x^{2}+x^{11}1 + italic_x start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_x start_POSTSUPERSCRIPT 11 end_POSTSUPERSCRIPT is made to reduce the number of XORs in field multiplication. The comparisons are carried out by repeatedly performing encoding and decoding and counting the average number of XORs at each step. Table II shows the detailed comparisons.

TABLE II: Comparison of the number of XOR Operations during the Encoding/Decoding Procedure of our (2048, 1984) code over the Ring 𝔽2[x]/(1+x++x22)subscript𝔽2delimited-[]𝑥1𝑥superscript𝑥22\mathbb{F}_{2}[x]/(1+x+\ldots+x^{22})blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( 1 + italic_x + … + italic_x start_POSTSUPERSCRIPT 22 end_POSTSUPERSCRIPT ) and Two (2048, 1984) RS Codes over the Field 𝔽2[x]/(1+x2+x11)subscript𝔽2delimited-[]𝑥1superscript𝑥2superscript𝑥11\mathbb{F}_{2}[x]/(1+x^{2}+x^{11})blackboard_F start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT [ italic_x ] / ( 1 + italic_x start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_x start_POSTSUPERSCRIPT 11 end_POSTSUPERSCRIPT ).
Steps Average XOR Operations
RS codes over 23subscript23\mathcal{R}_{23}caligraphic_R start_POSTSUBSCRIPT 23 end_POSTSUBSCRIPT Two RS codes over field
Encoding 1389200.4 1692843.6
Syndrome 1420710 1736304
Key equation 2081194.8 2210871
Chein search 1489731.4 1482622.4
Formal derivative 44896 30605.6
Forney’s formula 242024.5 250949.2
Total decoding 5278556.7 5711352.2

In the encoding/decoding procedure of our codes, we find a choice of {vi}i=0,1,,m1subscriptsubscript𝑣𝑖𝑖01𝑚1\{v_{i}\}_{i=0,1,\ldots,m-1}{ italic_v start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT } start_POSTSUBSCRIPT italic_i = 0 , 1 , … , italic_m - 1 end_POSTSUBSCRIPT according to the method in IV-C as follows: v0=α6subscript𝑣0superscript𝛼6v_{0}=\alpha^{6}italic_v start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = italic_α start_POSTSUPERSCRIPT 6 end_POSTSUPERSCRIPT, v1=α5subscript𝑣1superscript𝛼5v_{1}=\alpha^{5}italic_v start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_α start_POSTSUPERSCRIPT 5 end_POSTSUPERSCRIPT, v2=α4subscript𝑣2superscript𝛼4v_{2}=\alpha^{4}italic_v start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = italic_α start_POSTSUPERSCRIPT 4 end_POSTSUPERSCRIPT, v3=α3subscript𝑣3superscript𝛼3v_{3}=\alpha^{3}italic_v start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT = italic_α start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT, v4=α7subscript𝑣4superscript𝛼7v_{4}=\alpha^{7}italic_v start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT = italic_α start_POSTSUPERSCRIPT 7 end_POSTSUPERSCRIPT, v5=α2subscript𝑣5superscript𝛼2v_{5}=\alpha^{2}italic_v start_POSTSUBSCRIPT 5 end_POSTSUBSCRIPT = italic_α start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT, v6=α8+α3subscript𝑣6superscript𝛼8superscript𝛼3v_{6}=\alpha^{8}+\alpha^{3}italic_v start_POSTSUBSCRIPT 6 end_POSTSUBSCRIPT = italic_α start_POSTSUPERSCRIPT 8 end_POSTSUPERSCRIPT + italic_α start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT, v7=αsubscript𝑣7𝛼v_{7}=\alphaitalic_v start_POSTSUBSCRIPT 7 end_POSTSUBSCRIPT = italic_α, v8=α9+α8+α3+α+1subscript𝑣8superscript𝛼9superscript𝛼8superscript𝛼3𝛼1v_{8}=\alpha^{9}+\alpha^{8}+\alpha^{3}+\alpha+1italic_v start_POSTSUBSCRIPT 8 end_POSTSUBSCRIPT = italic_α start_POSTSUPERSCRIPT 9 end_POSTSUPERSCRIPT + italic_α start_POSTSUPERSCRIPT 8 end_POSTSUPERSCRIPT + italic_α start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT + italic_α + 1, v9=α10+α9+α7+α3+α2+αsubscript𝑣9superscript𝛼10superscript𝛼9superscript𝛼7superscript𝛼3superscript𝛼2𝛼v_{9}=\alpha^{10}+\alpha^{9}+\alpha^{7}+\alpha^{3}+\alpha^{2}+\alphaitalic_v start_POSTSUBSCRIPT 9 end_POSTSUBSCRIPT = italic_α start_POSTSUPERSCRIPT 10 end_POSTSUPERSCRIPT + italic_α start_POSTSUPERSCRIPT 9 end_POSTSUPERSCRIPT + italic_α start_POSTSUPERSCRIPT 7 end_POSTSUPERSCRIPT + italic_α start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT + italic_α start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_α, v10=α9+α7+α3subscript𝑣10superscript𝛼9superscript𝛼7superscript𝛼3v_{10}=\alpha^{9}+\alpha^{7}+\alpha^{3}italic_v start_POSTSUBSCRIPT 10 end_POSTSUBSCRIPT = italic_α start_POSTSUPERSCRIPT 9 end_POSTSUPERSCRIPT + italic_α start_POSTSUPERSCRIPT 7 end_POSTSUPERSCRIPT + italic_α start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT, where α𝛼\alphaitalic_α is the indeterminate of 23subscript23\mathcal{R}_{23}caligraphic_R start_POSTSUBSCRIPT 23 end_POSTSUBSCRIPT.

According to Table II, the proposed algorithm for our codes over the cyclic polynomial ring reduces the number of XORs by 17.9% during encoding and 7.5% during decoding.

VI Conclusion

In this paper, we construct RS codes over the cyclic polynomial ring psubscript𝑝\mathcal{R}_{p}caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT. In addition, we generalize the encoding/decoding algorithms for RS codes over finite fields in [4] to our codes. We then reduce encoding/decoding complexity by the structure of the cyclic polynomial ring psubscript𝑝\mathcal{R}_{p}caligraphic_R start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT. Finally, we demonstrate that our codes can reduce 17.9% encoding complexity and 7.5% decoding complexity compared with the RS codes over finite fields when (n,k)=(2048,1984)𝑛𝑘20481984(n,k)=(2048,1984)( italic_n , italic_k ) = ( 2048 , 1984 ).

References

  • [1] I. S. Reed and G. Solomon, “Polynomial Codes over Certain Finite Fields,” J. Soc. Ind. Appl. Math., vol. 8, no. 2, pp. 300–304, 1960.
  • [2] M. F. I. Chowdhury, C.-P. Jeannerod, V. Neiger, É. Schost, and G. Villard, “Faster Algorithms for Multivariate Interpolation With Multiplicities and Simultaneous Polynomial Approximations,” IEEE Trans. Inf. Theory, vol. 61, no. 5, pp. 2370–2387, 2015.
  • [3] N. Tang and Y. Lin, “Fast Encoding and Decoding Algorithms for Arbitrary (n,k)𝑛𝑘(n,k)( italic_n , italic_k ) Reed-Solomon Codes Over 𝔽2msubscript𝔽superscript2𝑚\mathbb{F}_{2^{m}}blackboard_F start_POSTSUBSCRIPT 2 start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT end_POSTSUBSCRIPT ,” IEEE Communi. Lett., vol. 24, no. 4, pp. 716–719, 2020.
  • [4] N. Tang and Y. S. Han, “A New Decoding Method for Reed–Solomon Codes Based on FFT and Modular Approach,” IEEE Trans. Commun., vol. 70, no. 12, pp. 7790–7801, 2022.
  • [5] W. K. Kadir, H.-Y. Lin, and E. Rosnes, “Efficient Interpolation-Based Decoding of Reed-Solomon Codes,” in 2023 IEEE Int. Symp. Inf. Theory (ISIT), 2023, pp. 997–1002.
  • [6] M. Blaum and R. Roth, “New array codes for multiple phased burst correction,” IEEE Trans. Inf. Theory, vol. 39, no. 1, pp. 66–77, 1993.
  • [7] H. Hou, K. W. Shum., M. Chen, and H. Li, “BASIC Codes: Low-Complexity Regenerating Codes for Distributed Storage Systems,” IEEE Trans. Inf. Theory, vol. 62, no. 6, pp. 3053–3069, 2016.
  • [8] H. Hou and Y. S. Han, “A New Construction and an Efficient Decoding Method for Rabin-Like Codes,” IEEE Trans. Commun., vol. 66, no. 2, pp. 521–533, 2018.
  • [9] H. Hou, Y. S. Han, K. W. Shum, and H. Li, “A Unified Form of EVENODD and RDP Codes and Their Efficient Decoding,” IEEE Trans. Commun., vol. 66, no. 11, pp. 5053–5066, 2018.
  • [10] H. Hou, Y. S. Han, P. P. Lee, Y. Wu, G. Han, and M. Blaum, “A Generalization of Array Codes with Local Properties and Efficient Encoding/Decoding,” accepted in IEEE Trans. Information Theory, (early access: https://ieeexplore.ieee.org/document/9868795), 2022.
  • [11] H. Hou, Y. S. Han, P. P. C. Lee, Y. Hu, and H. Li, “A New Design of Binary MDS Array Codes with Asymptotically Weak-Optimal Repair,” IEEE Trans. Inf. Theory, vol. 65, no. 11, pp. 7095––7113, 2019.
  • [12] S. Gao and T. Mateer, “Additive Fast Fourier Transforms Over Finite Fields,” IEEE Trans. Inf. Theory, vol. 56, no. 12, pp. 6265–6272, 2010.
  • [13] S.-J. Lin, T. Y. Al-Naffouri, and Y. S. Han, “FFT Algorithm for Binary Extension Finite Fields and Its Application to Reed–Solomon Codes,” IEEE Trans. Inf. Theory, vol. 62, no. 10, pp. 5343–5358, 2016.