Johan S R Nielsen

Alexander Zeh

Multi-Trial Guruswami-Sudan Decoding for Generalised Reed-Solomon Codes

Keywords: Guruswami-Sudan, List Decoding, Multi-Trial, Reed-Solomon Codes, Re-Encoding Transformation

An iterated refinement procedure for the Guruswami-Sudan list decoding algorithm for Generalised Reed-Solomon codes based on Alekhnovich's module minimisation is proposed. The method is parametrisable and allows variants of the usual list decoding approach. In particular, finding the list of closest codewords within an intermediate radius can be performed with improved average-case complexity while retaining the worst-case complexity.

We provide a detailed description of the module minimisation, reanalysing the Mulders-Storjohann algorithm and drawing new connections to both Alekhnovich's algorithm and Lee-O'Sullivan's. Furthermore, we show how to incorporate the reencoding technique of Kötter and Vardy into our iterative algorithm.

GS approach was generalised by Kötter and Vardy to a soft-decision scenario [START_REF] Kötter | Algebraic Soft-Decision Decoding of Reed-Solomon Codes[END_REF], and the same authors also presented a complexity-reducing re-encoding transformation [START_REF] Kötter | A Complexity Reducing Transformation in Algebraic List Decoding of Reed-Solomon Codes[END_REF][START_REF] Kötter | The Re-Encoding Transformation in Algebraic List-Decoding of Reed-Solomon Codes[END_REF]. Cassuto et al. [START_REF] Cassuto | On the Average Complexity of Reed-Solomon List Decoders[END_REF] and Tang et al. [START_REF] Tang | Progressive List-Enlarged Algebraic Soft Decoding of Reed-Solomon Codes[END_REF] proposed modified interpolation-based list decoders with reduced average-complexity.

For the root-finding step, one can employ the method of Roth and Ruckenstein [START_REF] Roth | Efficient Decoding of Reed-Solomon Codes Beyond Half the Minimum Distance[END_REF] in a divide-and-conquer fashion, as described by Alekhnovich [START_REF] Alekhnovich | Linear Diophantine Equations Over Polynomials and Soft Decoding of Reed-Solomon Codes[END_REF]. This step then becomes an order of magnitude faster than interpolation, leaving the latter as the main target for further optimisations.

For a given GRS code, the GS algorithm has two parameters, both positive integers: the interpolation multiplicity s and the list size ℓ. Together with the code parameters they determine the decoding radius τ . To achieve a higher decoding radius for some given GRS code, one needs higher s and ℓ, and the value of these strongly influences the running time of the algorithm.

In this work, we present a novel iterative method: we first solve the interpolation problem for s = ℓ = 1 and then iteratively refine this solution for increasing s and ℓ. In each step of our algorithm, we obtain a valid solution to the interpolation problem for these intermediate parameters. The method builds upon that of Beelen-Brander [START_REF] Beelen | Key equations for list decoding of Reed-Solomon codes and how to solve them[END_REF], but a new analysis of the computational engine-Alekhnovich's module minimisation algorithm-reveals that each iteration runs faster than otherwise expected.

The method therefore allows a fast multi-trial list decoder when our aim is just to find the list of codewords with minimal distance to the received word. At any time during the refinement process, we will have an interpolation polynomial for intermediate parameters ŝ ≤ s, l ≤ ℓ yielding an intermediate decoding radius d/2 ≤ τ ≤ τ , where d is the minimum distance. If we perform the root-finding step of the GS algorithm on this, all codewords with distance at most τ from the received are returned; if there are any such words, we break computation and return those; otherwise we continue the refinement. We can choose any number of these trials, e.g. for each possible intermediate decoding radius between d/2 and the target τ .

Since the root-finding step of GS is less complex than the interpolation step, this multi-trial decoder will have the same asymptotic worst-case complexity as the usual GS using the Beelen-Brander interpolation [START_REF] Beelen | Key equations for list decoding of Reed-Solomon codes and how to solve them[END_REF]. However, its average-case complexity is better since due to the properties of the underlying channel it is more probable to have a small number of errors rather than a big one. This contribution is structured as follows. In the next section we give necessary preliminaries and state the GS interpolation problem for decoding GRS codes. In Section 3 we give a definition and properties of minimal matrices. We describe and reanalyse the conceptually simple Mulders-Storjohann algorithm [START_REF] Mulders | On Lattice Reduction for Polynomial Matrices[END_REF] for bringing matrices to this form. We also give a fresh look at Alekhnovich's algorithm [START_REF] Alekhnovich | Linear Diophantine Equations Over Polynomials and Soft Decoding of Reed-Solomon Codes[END_REF] simply as a divide-&-conquer variant of Mulders-Storjohann, and our new analysis can carry over. Our new iterative procedure is explained in detail in Section 4 and the incorporation of the re-encoding transformation [START_REF] Kötter | The Re-Encoding Transformation in Algebraic List-Decoding of Reed-Solomon Codes[END_REF] is described in Section 5. In Section 6 we present simulation results.

Parts of these results were presented at WCC 2013 [START_REF] Nielsen | Multi-Trial Guruswami-Sudan Decoding for Generalised Reed-Solomon Codes[END_REF]; compared to that article, this version contains the incorporation of the re-encoding scheme, a full example of the algorithm, simulation results, as well as a more detailed description of the module minimisation procedure.

Preliminaries

Notation

Let Fq be the finite field of order q and let Fq[X] be the polynomial ring over Fq with indeterminate X. Let Fq[X, Y ] denote the polynomial ring in the variables X and Y and let wdeg u,v X i Y j ui + vj be the (u, v)-weighted degree of X i Y j .

A vector of length n is denoted by v = (v 0 , . . . , v n-1 ). If v is a vector over Fq[X], let deg v max i {deg v i (X)}. We introduce the leading position as

LP(v) = max i i | deg v i (X) = deg v (1)
and the leading term

LT(v) = v LP(v)
is the term at this position. An m × n matrix is denoted by V = v i,j m-1,n-1 i=0,j=0 . The rows of such a matrix are denoted by bold lower-case letters, e.g. v 0 , . . . , v m-1 . Furthermore, let the degree of such a polynomial matrix be deg

V = m-1 i=0 deg v i .
Modules are denoted by capital letters such as M .

Interpolation-Based Decoding of GRS Codes

Let α 0 , . . . , α n-1 be n nonzero distinct elements of Fq with n < q and let w 0 , . . . , w n-1 be n (not necessarily distinct) nonzero elements of Fq. A GRS code GRS(n, k) of length n and dimension k over Fq is given by

GRS(n, k) (w 0 f (α 0 ), . . . , w n-1 f (α n-1 )) : f (X) ∈ Fq[X], deg f (X) < k . (2)
GRS codes are Maximum Distance Separable (MDS) codes, i.e., their minimum Hamming distance is d = n -k + 1. We shortly explain the interpolation problem of GS [START_REF] Guruswami | Improved Decoding of Reed-Solomon Codes and Algebraic Geometry Codes[END_REF][START_REF] Sudan | Decoding of Reed-Solomon Codes beyond the Error-Correction Bound[END_REF] for list decoding GRS codes up to the Johnson radius [START_REF] Johnson | A New Upper Bound for Error-Correcting Codes[END_REF][START_REF] Bassalygo | New upper bounds for error-correcting codes[END_REF] in the following.

Theorem 1 (Guruswami-Sudan for GRS Codes [START_REF] Guruswami | Improved Decoding of Reed-Solomon Codes and Algebraic Geometry Codes[END_REF][START_REF] Sudan | Decoding of Reed-Solomon Codes beyond the Error-Correction Bound[END_REF]) Let c ∈ GRS(n, k) and f (X) be the corresponding information polynomial as defined in [START_REF] Bassalygo | New upper bounds for error-correcting codes[END_REF]. Let r = (r 0 , . . . , r n-1 ) = c + e be a received word where weight(e) ≤ τ . Let r ′ i denote r i /w i .

Let Q(X, Y ) ∈ Fq[X, Y ] be a nonzero polynomial that passes through the n points (α 0 , r ′ 0 ), . . . , (α n-1 , r ′ n-1 ) with multiplicity s ≥ 1, has Y -degree at most ℓ, and

wdeg 1,k-1 Q(X, Y ) < s(n -τ ). Then (Y -f (X)) | Q(X, Y ).
One can easily show that a polynomial Q(X, Y ) that fulfills the above conditions can be constructed whenever E(s, ℓ, τ ) > 0, where

E(s, ℓ, τ ) (ℓ + 1)s(n -τ ) -ℓ+1 2 (k -1) -s+1 2 n (3)
is the difference between the maximal number of coefficients of Q(X, Y ), and the number of homogeneous linear equations on Q(X, Y ) specified by the interpolation constraint. This determines the maximal number of correctable errors, and one can show that satisfactory s and ℓ can always be chosen whenever τ < nn(k -1).

Definition 2 (Permissible Triples) An integer triple (s, ℓ, τ

) ∈ (Z + ) 3 is permissi- ble if E(s, ℓ, τ ) > 0.
We define also the decoding radius-function τ (s, ℓ) as the greatest integer such that (s, ℓ, τ (s, ℓ)) is permissible.

It is well-known that E(s, ℓ, τ ) > 0 for s > ℓ implies τ < d/2, which is half the minimum distance. Therefore, it never makes sense to consider s > ℓ, and in the remainder we will always assume s ≤ ℓ. Furthermore, we will also assume s, ℓ ∈ O(n 2 ) since this e.g. holds for any τ for the closed-form expressions in [START_REF] Guruswami | Improved Decoding of Reed-Solomon Codes and Algebraic Geometry Codes[END_REF].

Let us illustrate the above. The following will be a running example throughout the article.

Example 3 A GRS [START_REF] Lee | List Decoding of Reed-Solomon Codes from a Gröbner Basis Perspective[END_REF][START_REF] Beelen | On Rational Interpolation-Based List-Decoding and List-Decoding Binary Goppa Codes[END_REF] code over F 17 can uniquely correct τ 0 = (n -k)/2 = 6 errors; unique decoding corresponds to s 0 = ℓ 0 = 1 and one can confirm that E(1, 1, 6) > 0. To attain a decoding radius τ 1 = 7, one can choose s 1 = 1 and ℓ 1 = 2 in order to obtain a permissible triple. Also (1, 3, 7) is permissible, though less interesting since it does not give improved decoding radius. However, one finds [START_REF] Bassalygo | New upper bounds for error-correcting codes[END_REF][START_REF] Beelen | On Rational Interpolation-Based List-Decoding and List-Decoding Binary Goppa Codes[END_REF][START_REF] Chowdhury | Faster algorithms for multivariate interpolation with multiplicities and simultaneous polynomial approximations[END_REF] and (28, 64, 9) are permissible. Since nn(k -1) < 10, there are no permissible triples for greater decoding radii.

Module Reformulation of Guruswami-Sudan

Let M s,ℓ ⊂ Fq[X, Y ] denote the space of all bivariate polynomials passing through the points (α 0 , r ′ 0 ), . . . , (α n-1 , r ′ n-1 ) with multiplicity s and Y -degree at most ℓ. We are searching for an element of M s,ℓ with low (1, k -1)-weighted degree.

Following the ideas of Lee and O'Sullivan [START_REF] Lee | List Decoding of Reed-Solomon Codes from a Gröbner Basis Perspective[END_REF], we can first remark that M s,ℓ is

an Fq[X]-module. Second, we can give an explicit basis for M s,ℓ . Define first two polynomials G(X)

n-1 i=0 (X -α i ) as well as R(X) in Fq[X] as the unique Lagrange interpolation polynomial going through the points

(α i , r ′ i ) for i = 0, . . . , n -1. Denote by Q [t] (X) the Y t -coefficient of Q(X, Y ) when Q is regarded over Fq[X][Y ]. Lemma 4 Let Q(X, Y ) = t i=0 Q [i] (X)Y i ∈ M s,ℓ with wdeg 0,1 Q = t < s. Then G(X) s-t | Q [t] (X).
Proof Q(X, Y ) interpolates the n points (α i , r ′ i ) with multiplicity s, so for any i, Q(X

+ α i , Y + r ′ i ) = t j=0 Q [j] (X + α j )(Y + r ′ j
) j has no monomials of total degree less than s. Multiplying out the (Y + r ′ j ) j -terms, Q [t] (X + α j )Y t is the only term with Y -degree t. Therefore Q [t] (X + α j ) can have no monomials of degree less than s -t, which implies (X -α i ) s-t | Q [t] (X). As this holds for any i, we proved the lemma.

⊓ ⊔ Theorem 5 The module M s,ℓ is generated as an Fq[X]-module by the ℓ+1 polynomials

P (i) (X, Y ) ∈ Fq[X, Y ] given by P (t) (X, Y ) = G(X) s-t (Y -R(X)) t , for 0 ≤ t < s, P (t) (X, Y ) = Y t-s (Y -R(X)) s , for s ≤ t ≤ ℓ.
Proof It is easy to see that each P (t) (X, Y ) ∈ M s,ℓ since both G(X) and (Y -R(X)) go through the n points (α i , r ′ i ) with multiplicity one, and that G(X) and (Y -R(X)) divide P (t) (X, Y ) with total power s for each t.

To see that any element of M s,ℓ can be written as an Fq[X]-combination of the

P (t) (X, Y ), let Q(X, Y ) be some element of M s,ℓ . Then the polynomial Q (ℓ-1) (X, Y ) = Q(X, Y ) -Q [ℓ] (X)P (ℓ) (X, Y ) has Y -degree at most ℓ -1. Since both Q(X, Y ) and P (ℓ) (X, Y ) are in M s,ℓ , so must Q (ℓ-1) (X, Y ) be in M s,ℓ . Since P (t) (X, Y ) has Y - degree t and P (t)
[t] (X) = 1 for t = ℓ, ℓ -1, . . . , s, we can continue reducing this way until we reach a Q (s-1) (X, Y ) ∈ M s,ℓ with Y -degree at most s -1. From then on, we have P (t)

[t] (X) = G(X) s-t , but by Lemma 4, we must also have G(X) | Q (s-1)

[s-1] (X). Therefore, we can reduce by P (s-1) (X, Y ). This can be continued with the remaining P (t) (X, Y ), eventually reducing the remainder to 0.

⊓ ⊔

We can represent the basis of M s,ℓ by the (ℓ + 1) × (ℓ + 1) matrix A s,ℓ = P (i)

[j] (X) ℓ,ℓ i=0,j=0 over Fq[X]; more explicitly we have:

A s,ℓ               G s G s-1 (-R) G s-1 0 G s-2 (-R) 2 2G s-2 (-R) G s-2 . . . . . . (-R) s s 1 (-R) s-1 . . . 1 (-R) s . . . 1 0 . . . . . . (-R) s . . . 1               . ( 4
)
Any Fq[X]-linear combination of rows of A s,ℓ thus corresponds to an element in M s,ℓ by its tth position being the Fq[X]-coefficient to Y t . All other bases of M s,ℓ can similarly be represented by matrices, and these will be unimodular equivalent to A s,ℓ , i.e., they can be obtained by multiplying A s,ℓ on the left with an invertible matrix over Fq[X].

Extending the work of Lee and O'Sullivan [START_REF] Lee | List Decoding of Reed-Solomon Codes from a Gröbner Basis Perspective[END_REF], Beelen and Brander [START_REF] Beelen | Key equations for list decoding of Reed-Solomon codes and how to solve them[END_REF] gave a fast algorithm for computing a satisfactory Q(X, Y ): start with A s,ℓ as a basis of M s,ℓ and compute a different, "minimal" basis of M s,ℓ where an element of minimal (1, k -1)weighted degree appears directly.

In the following section, we give further details on how to compute such a basis, but our ultimate aim in Section 4 is different: we will use a minimal basis of M s,ℓ to efficiently compute one for M ŝ, l for ŝ ≥ s and l > ℓ. This will allow an iterative refinement for increasing s and ℓ, where after each step we have such a minimal basis for M s,ℓ . We then exploit this added flexibility in our multi-trial algorithm.

Module Minimisation

Given a basis of M s,ℓ , e.g. A s,ℓ , the module minimisation here refers to the process of obtaining a new basis, which is the smallest among all bases of M s,ℓ in a precise sense. We will define this and connect various known properties of such matrices. We will then show how to perform this minimisation using the Mulders-Storjohann algorithm [START_REF] Mulders | On Lattice Reduction for Polynomial Matrices[END_REF], reanalyse its performance and connect it to Alekhnovich's algorithm [START_REF] Alekhnovich | Linear Diophantine Equations Over Polynomials and Soft Decoding of Reed-Solomon Codes[END_REF]. Definition 6 (Weak Popov Form [START_REF] Mulders | On Lattice Reduction for Polynomial Matrices[END_REF]) A matrix V over Fq[X] is in weak Popov form if the leading position of each row is different.

We are essentially interested in short vectors in a module, and the following lemma shows that the simple concept of weak Popov form will provide this. It is a paraphrasing of [1, Proposition 2.3] and we omit the proof.

Lemma 7 (Minimal Degree) If a square matrix V over Fq[X] is in weak Popov form, then one of its rows has minimal degree of all vectors in the row space of V.

Denote now by W ℓ the diagonal (ℓ + 1) × (ℓ + 1) matrix over Fq[X]: 1) .

W ℓ diag 1, X k-1 , . . . , X ℓ(k-
(

) 5
Since we seek a polynomial of minimal (1, k -1)-weighted degree, we also need the following corollary.

Corollary 8 (Minimal Weighted Degree) Let B ∈ Fq[X] (ℓ+1)×(ℓ+1) be the matrix representation of a basis of M s,ℓ . If BW ℓ is in weak Popov form, then one of the rows of B corresponds to a polynomial in M s,ℓ with minimal (1, k -1)-weighted degree.

Proof Let B = BW ℓ . Now, B will correspond to the basis of an Fq[X]-module M isomorphic to M s,ℓ , where an element

Q(X, Y ) ∈ M s,ℓ is mapped to Q(X, X k-1 Y ) ∈ M
. By Lemma 7, the row of minimal degree in B corresponds to an element of M with minimal X-degree. Therefore, the same row of B corresponds to an element of M s,ℓ with minimal (1, k -1)-weighted degree.

⊓ ⊔

If for some matrix B ∈ Fq[X] (ℓ+1)×(ℓ+1) , BW ℓ is in weak Popov form, we say that B is in weighted weak Popov form.

We introduce what will turn out to be a measure of how far a matrix is from being in weak Popov form.

Definition 9 (Orthogonality Defect [START_REF] Lenstra | Factoring Multivariate Polynomials over Finite Fields[END_REF]) The orthogonality defect of a square matrix V over Fq[X] is defined as

D(V) deg V -deg det V. Lemma 10 If a square matrix V over Fq[X] is in weak Popov form, then D(V) = 0.
Proof Let v 0 , . . . , v m-1 be the rows of V ∈ Fq[X] m×m and v i = (v i,0 , . . . , v i,m-1 ). In the alternating sum-expression for det V, the term

m-1 i=0 LT(v i ) will occur since the leading positions of v i are all different. Thus deg det V = m-1 i=0 deg LT(v i ) = deg V
unless leading term cancellation occurs in the determinant expression. However, no other term in the determinant has this degree: regard some (unsigned) term in det V, (vi) . As none of the other terms in t can have greater degree than their corresponding row's leading term, we get deg t <

say t = m-1 i=0 v i,σ(i) for some permutation σ ∈ Sm. If not σ(i) = LP(v i ) for all i (as defined in (1)), then there must be an i such that σ(i) > LP(v i ) since j σ(j) is the same for all σ ∈ Sm. Thus, deg v i,σ(i) < deg v i,LP
m-1 i=0 deg LT(v i ). Thus, D(V) = 0. ⊓ ⊔
Algorithm 1: Mulders-Storjohann [START_REF] Mulders | On Lattice Reduction for Polynomial Matrices[END_REF] Input: V ∈ Fq[X] m×m Output: A matrix unimodular equivalent to V and in weak Popov form.

1 Apply row reductions as in Definition 11 on the rows of V until no longer possible 2 return this matrix.

Remark The weak Popov form is highly related to minimal Gröbner bases of the row space module, using a term order where vectors in Fq[X] m are ordered according to their degree; indeed the rows of a matrix in weak Popov form is such a Gröbner basis (though the opposite is not always true). Similarly, the weighted weak Popov form has a corresponding weighted term order. In this light, Lemma 7 is simply the familiar assertion that a Gröbner basis over such a term order must contain a "minimal" element of the module. See e.g. [START_REF] Nielsen | List decoding of algebraic codes[END_REF]Chapter 2] for more details on this correspondence. The language of Gröbner bases was employed in the related works of [START_REF] Beelen | Key equations for list decoding of Reed-Solomon codes and how to solve them[END_REF][START_REF] Lee | List Decoding of Reed-Solomon Codes from a Gröbner Basis Perspective[END_REF].

Algorithms

Definition 11 (Row Reduction) Applying a row reduction on a matrix over Fq[X]

means to find two different rows v i , v j , deg v i < deg v j and such that LP(v i ) = LP(v j ),
and then replacing v j with v j -αX δ v i where α ∈ Fq and δ ∈ Z + are chosen such that the leading term of the polynomial LT(v j ) is cancelled.

Algorithm 1 is due to Mulders and Storjohann [START_REF] Mulders | On Lattice Reduction for Polynomial Matrices[END_REF]. Our proof of it is similar, though we have related the termination condition to the orthogonality defect, restricting it to only square matrices.

Introduce for the proof a value function

ψ : Fq[X] m → N 0 as ψ(v) = m deg v + LP(v).
First let us consider the following lemma.

Lemma 12 If we replace v j with v ′ j in a row reduction, then ψ(v ′ j ) < ψ(v j ).

Proof We cannot have deg v ′ j > deg v j since all terms of both v j and αX δ v i have degree at most deg

v j . If deg v ′ j < deg v j we are done since LP(v ′ j ) < m, so assume deg v ′ j = deg v j . Let h = LP(v j ) = LP(v i ).
By the definition of the leading position, all terms in both v j and αX δ v i to the right of h must have degree less than deg v j , and so also all terms in v ′ j to the right of h satisfies this. The row reduction ensures that deg v ′ j,h < deg v j,h , so it must then be the case that LP(v ′ j ) < h.

Theorem 13 Algorithm 1 is correct. For a matrix V ∈ Fq[X] m×m , it performs fewer than m(D(V)+(m+1)/2) row reductions and has asymptotic complexity O(m 2 D(V)N )
where N is the maximal degree of any term in V.

Proof If Algorithm 1 terminates, the output matrix must be unimodular equivalent to the input since it is reached by a finite number of row-operations. Since we can apply row reductions on a matrix if and only if it is not in weak Popov form, Algorithm 1 must bring V to this form.

Termination follows directly from Lemma 12 since the value of a row decreases each time a row reduction is performed. To be more precise, we furthermore see that the maximal number of row reductions performed on V before reaching a matrix U in weak Popov form is at most For the asymptotic complexity, note that during the algorithm, no polynomial in the matrix will have larger degree than N . The estimate is reached simply by remarking that one row reduction consists of m times scaling and adding two such polynomials.

m-1 i=0 ψ(v i ) -ψ(u i ). Expanding this, we get m-1 i=0 ψ(v i ) -ψ(u i ) = m-1 i=0 m(deg v i -deg u i ) + LP(v i ) -LP(u i ) = m(deg V -deg U) + m-1 i=0 LP(v i ) -m 2 < m D(V) + m+1
⊓ ⊔ Let us consider an example to illustrate all the above.

Example 14 (Orthogonality Defect and Weak-Popov Form) Let us consider the following matrices V 0 , . . . ,

V 3 ∈ F 2 [X] 3×3 . From matrix V i to V i+1 we performed one row-operation: V 0 = V 1 = V 2 = V 3 =   1 X 2 X 0 X 3 X 2 X 1 0   (0,1) ---→   1 X 2 X X 0 0 X 1 0   (2,1) ---→   1 X 2 X X 0 0 0 1 0   (0,2) ---→   1 0 X X 0 0 0 1 0   ,
where the indexes (i 1 , i 2 ) on the arrow indicated the concerned rows. The orthogonality defect is decreasing;

D(V 0 ) = 3 → D(V 1 ) = 2 → D(V 2 ) = 1 → D(V 3 ) = 0, and V 3 is in weak Popov form.
In [START_REF] Alekhnovich | Linear Diophantine Equations Over Polynomials and Soft Decoding of Reed-Solomon Codes[END_REF], Alekhnovich gave a divide-&-conquer variant of the Mulders-Storjohannalgorithm: the same row reductions are performed but structured in a binary computation tree, where work is done on matrices of progressively smaller degree towards the bottom, ending with essentially Fq-matrices at the leaves. Alekhnovich does not seem to have been aware of the work of Mulders and Storjohann, and basically reinvented their algorithm before giving his divide-&-conquer variant.

For square matrices, we can improve upon the complexity analysis that Alekhnovich gave by using the concept of orthogonality defect; this will be crucial for our aims.

Lemma 15 (Alekhnovich's Algorithm [START_REF] Alekhnovich | Linear Diophantine Equations Over Polynomials and Soft Decoding of Reed-Solomon Codes[END_REF]) Alekhnovich's algorithm inputs a matrix V ∈ Fq[X] m×m and outputs a unimodular equivalent matrix which is in weak Popov form. Let N be the greatest degree of a term in V. If N ∈ O(D(V)) then the algorithm has asymptotic complexity:

O m 3 D(V) log 2 D(V) log log D(V)
operations over Fq.

Proof The description of the algorithm as well as the proof of its correctness can be found in [START_REF] Alekhnovich | Linear Diophantine Equations Over Polynomials and Soft Decoding of Reed-Solomon Codes[END_REF]. We only prove the claim on the complexity. The method R(V, t) of [START_REF] Alekhnovich | Linear Diophantine Equations Over Polynomials and Soft Decoding of Reed-Solomon Codes[END_REF] computes a unimodular matrix U such that deg(U V) ≤ deg V -t or U V is in weak Popov form. According to [1, Lemma 2.10], the asymptotic complexity of this computation is in O(m 3 t log 2 t log log t). Due to Lemma 10, we can set t = D(V) to be sure that U V is in weak Popov form. What remains is just to compute the product U V. Due to [1, Lemma 2.8], each entry in U can be represented as p(X)X d for some d ∈ N 0 and p(X) ∈ Fq[X] of degree at most 2t. If therefore N ∈ O(D(V)), the complexity of performing the matrix multiplication using the naive algorithm is O(m 3 D(V)).

⊓ ⊔

The Beelen-Brander interpolation algorithm [START_REF] Beelen | Key equations for list decoding of Reed-Solomon codes and how to solve them[END_REF] works simply by computing A s,ℓ and then applying Alekhnovich's algorithm on A s,ℓ W ℓ ; a minimal (1, k -1)-weighted polynomial in M s,ℓ can then be directly retrieved as a row in the reduced matrix, after removing W ℓ . The algorithm's complexity therefore follows from the above theorem once we have computed the orthogonality defect of A s,ℓ W ℓ :

Lemma 16 D(A s,ℓ W ℓ ) = 1 2 (2ℓ -s + 1)s(deg R -k + 1) < ℓs(n -k).
Proof We will compute first deg(A s,ℓ W ℓ ) and then deg det(A s,ℓ W ℓ ).

For the former, we have deg

(A s,ℓ W ℓ ) = ℓ t=0 wdeg 1,k-1 P (t) (X, Y )
, where the P (t) (X, Y ) are as in Theorem 5. Note that whenever r is not a codeword then deg

R ≥ k. Therefore, wdeg 1,k-1 (Y -R(X)) t = t deg R(X) and so wdeg 1,k-1 P (t) (X, Y ) = (s -t)n + t deg R(X) for t < s, wdeg 1,k-1 P (t) (X, Y ) = (t -s)(k -1) + s deg R(X) for t ≥ s.
This gives

deg(A s,ℓ W ℓ ) = s+1 2 n + ℓ-s+1 2 (k -1) + s+1 2 + (ℓ -s)s deg R(X).
Since A s,ℓ is lower triangular, the determinant is: 1) , and so

det(A s,ℓ W ℓ ) = s t=0 G s-t ℓ t=0 X t(k-
deg det(A s,ℓ W ℓ ) = s+1 2 n + ℓ+1 2 (k -1).
The orthogonality defect can then be simplified to

D(A s,ℓ W ℓ ) = ℓ-s+1 2 (k -1) + s+1 2 + (ℓ -s)s deg R(X) -ℓ+1 2 (k -1) = deg R(X) sℓ -1 2 s 2 + 1 2 s -1 2 (k -1) ℓ 2 + ℓ -(ℓ -s + 1)(ℓ -s) = 1 2 (2ℓ -s + 1)s(deg R(X) -k + 1).
⊓ ⊔ Remark In the earlier work of Lee and O'Sullivan [START_REF] Lee | List Decoding of Reed-Solomon Codes from a Gröbner Basis Perspective[END_REF], they construct basically the same matrix as A s,ℓ , but apply their own Gröbner basis algorithm on this. They also does not seem to have been aware of the work of Mulders and Storjohann [START_REF] Mulders | On Lattice Reduction for Polynomial Matrices[END_REF], but their algorithm is basically a variant of Algorithm 1 which keeps the rows in a specific order.

Multi-Trial List Decoding

Basic Idea

Using the results of the preceding section, we show in Section 4.3 that, given a basis of M s,ℓ as a matrix B s,ℓ in weighted weak Popov form, then we can write down a matrix C I s,ℓ+1 which is a basis of M s,ℓ+1 and where D(C I s,ℓ+1 W ℓ ) is much lower than D(A s,ℓ+1 W ℓ ). This means that reducing C I s,ℓ+1 to weighted weak Popov form using Alekhnovich's algorithm [START_REF] Alekhnovich | Linear Diophantine Equations Over Polynomials and Soft Decoding of Reed-Solomon Codes[END_REF] is faster than reducing A s,ℓ+1 . We call this kind of refinement a "micro-step of type I". In Section 4.4, we similarly give a way to refine a basis of M s,ℓ to one of M s+1,ℓ+1 , and we call this a "micro-step of type II".

If we first compute a basis in weighted weak Popov form of M 1,1 using A 1,1 , we can perform a sequence of micro-steps of type I and II to compute a basis in weighted weak Popov form of M s,ℓ for any s, ℓ with ℓ ≥ s. After any step, having some intermediate ŝ ≤ s, l ≤ ℓ, we will thus have a basis of M ŝ, l in weighted weak Popov form. By Corollary 8, we could extract from B ŝ, l a Q(X, Y ) ∈ M ŝ, l with minimal (1, k -1)weighted degree. Since it must satisfy the interpolation conditions of Theorem 1, and since the weighted degree is minimal among such polynomials, it must also satisfy the degree constraints for τ = τ (ŝ, l). By that theorem any codeword with distance at most τ from r would then be represented by a root of Q(X, Y ).

Algorithm 2 is a generalisation and formalisation of this method. For a given GRS(n, k) code, one chooses ultimate parameters (s, ℓ, τ ) being a permissible triple with s ≤ ℓ. One also chooses a list of micro-steps and chooses after which micro-steps to attempt decoding; these choices are represented by a list C consisting of S 1 , S 2 and Root elements. This list must contain exactly ℓ -s S 1 -elements and s -1 S 2 -elements, as it begins by computing a basis for M 1,1 and will end with a basis for M s,ℓ . Whenever there is a Root element in the list, the algorithm performs root-finding and finds all codewords with distance at most τ = τ (ŝ, l) from r; if this list is non-empty, the computation breaks and the list is returned.

The algorithm calls sub-functions which we explain informally: MicroStep1 and MicroStep2 will take ŝ, l and a basis in weighted weak Popov form for M ŝ, l and return a basis in weighted weak Popov form for M ŝ, l+1 respectively M ŝ+1, l+1 ; more detailed descriptions for these are given in Subsections 4.3 and 4.4. MinimalWeightedRow finds a polynomial of minimal (1, k-1)-weighted degree in M ŝ, l given a basis in weighted weak Popov form (Corollary 8). Finally, RootFinding(Q, τ ) returns all Y -roots of Q(X, Y ) of degree less than k and whose corresponding codeword has distance at most τ from the received word r.

The correctness of Algorithm 2 for any possible choice of s, ℓ and C follows from our discussion as well as Sections 4.3 and 4.4. Before going to these two technical sections, we will discuss what possibilities the micro-steps of type I and II offer, and in particular, do not, with regards to decoding radii.

In the following two subsections we explain the details of the micro-steps. In Section 4.5, we discuss the complexity of the method and how the choice of C influences this. is permissible and either s i or ℓ i is minimal possible for the given τ i . Can then the sequence of parameters (s i , ℓ i ) be reached by a series of micro-steps of type I and II? Unfortunately, we do not have a formal proof of this statement. However, we have verified for a large number of parameters that it is true.

Micro-Step Type

I: (s, ℓ) → (s, ℓ + 1)
The function MicroStep1 is based on the following lemma:

Lemma 17 If B (0) (X, Y ), . . . , B (ℓ) (X, Y ) ∈ Fq[X, Y ] is a basis of M s,ℓ , then the fol- lowing is a basis of M s,ℓ+1 : B (0) (X, Y ), . . . , B (ℓ) (X, Y ), Y ℓ-s+1 (Y -R(X)) s .
Proof In the basis of M s,ℓ+1 given in Theorem 5, the first ℓ + 1 generators are the generators of M s,ℓ . Thus, all of these can be described by any basis of M s,ℓ+1 . The last remaining generator is exactly

Y ℓ-s+1 (Y -R(X)) s . ⊓ ⊔
In particular, the above lemma holds for a basis of M s,ℓ+1 in weighted weak Popov form, represented by a matrix B s,ℓ . The following matrix thus represents a basis of M s,ℓ+1 :

C I s,ℓ+1 =    B s,ℓ 0 T 0 . . . 0 (-R) s s 1 (-R) s-1 . . . 1    . (6)
Lemma 18 D(C I s,ℓ+1 W ℓ+1 ) = s(deg R -k + 1) ≤ s(n -k).
Proof We calculate the two quantities det(C I s,ℓ+1 W ℓ+1 ) and deg(C I s,ℓ+1 W ℓ+1 ). It is easy to see that det(C I s,ℓ+1 W ℓ+1 ) = det B s,ℓ det W ℓ+1 = det B s,ℓ det W ℓ X (ℓ+1)(k-1) .

For the row-degree, this is clearly deg(B s,ℓ W ℓ ) plus the row-degree of the last row. If and only if the received word is not a codeword then deg R ≥ k, so the leading term of the last row must be (-R) s X (ℓ+1-s)(k-1) . Thus, we get The function MicroStep2 is based on the following lemma:

D(C I s,ℓ+1 W ℓ+1 ) = deg(B s,ℓ W ℓ ) + s deg R + (ℓ + 1 -s)(k -1) -deg det(B s,ℓ W ℓ ) + (ℓ + 1)(k -1) = s(deg R -k + 1)
Lemma 20 If B (0) (X, Y ), . . . , B (ℓ) (X, Y ) ∈ Fq[X, Y ] is a basis of M s,ℓ , then the fol- lowing is a basis of M s+1,ℓ+1 : G s+1 (X), B (0) (X, Y )(Y -R(X)), . . . , B (ℓ) (X, Y )(Y -R(X)).
Proof Denote by P (0) s,ℓ (X, Y ), . . . , P

s,ℓ (X, Y ) the basis of M s,ℓ as given in Theorem 5, and by P (0) s+1,ℓ+1 (X, Y ), . . . , P (ℓ+1) s+1,ℓ+1 (X, Y ) the basis of M s+1,ℓ+1 . Then observe that for t > 0, we have

P (t) s+1,ℓ+1 = P (t-1) s,ℓ (Y -R(X)). Since the B (t) (X, Y ) form a ba- sis of M s,ℓ , each P (t)
s,ℓ is expressible as an Fq[X]-combination of these, and thus for

t > 0, P (t) s+1,ℓ+1 is expressible as an Fq[X]-combination of the B (t) (X, Y )(Y -R(X)).
Remaining is then only

P (0) s+1,ℓ+1 (X, Y ) = G s+1 (X). ⊓ ⊔
As before, we can use the above with the basis B s,ℓ of M s,ℓ in weighted weak Popov form, found in the previous iteration of our algorithm. Recall that multiplying by Y translates in the matrix representation to shifting one column to the right, so the following matrix represents a basis of M s+1,ℓ+1 :

C II s+1,ℓ+1 =   G s+1 0 0 T 0   +   0 0 0 T B s,ℓ   -R •   0 0 B s,ℓ 0 T   . (7)
Lemma 21 D(C II s+1,ℓ+1 W ℓ+1 ) = (ℓ + 1)(deg R -k + 1) ≤ (ℓ + 1)(n -k).
Proof We compute deg(C II s+1,ℓ+1 W ℓ+1 ) and deg det(C II s+1,ℓ+1 W ℓ+1 ). For the former, obviously the first row has degree (s + 1)n. Let b i denote the ith row of B s,ℓ and b ′ i denote the ith row of B s,ℓ W ℓ . The (i + 1)th row of C II s+1,ℓ+1 W ℓ+1 has the form

(0 | b i ) -R(b i | 0) W ℓ+1 = (0 | b ′ i )X k-1 -R(b ′ i | 0).
If and only if the received word is not a codeword, then deg R ≥ k. In this case, the leading term of Rb ′ i must have greater degree than any term in X k-1 b ′ i . Thus the degree of the above row is deg

R + deg b ′ i . Summing up we get deg C II s+1,ℓ+1 W ℓ+1 = (s + 1)n + ℓ i=0 deg R + deg b ′ i = (s + 1)n + (ℓ + 1) deg R + deg(B s,ℓ W ℓ ).
For the determinant, observe that 1) , where B = B s,ℓ -R Bs,ℓ 0 T and Bs,ℓ is all but the zeroth column of B s,ℓ . This means B can be obtained by starting from B s,ℓ and iteratively adding the (j + 1)th column of B s,ℓ scaled by R(X) to the jth column, with j starting from 0 up to ℓ -1. Since each of these will add a scaled version of an existing column in the matrix, this does not change the determinant. Thus, det B = det B s,ℓ . But then det B det W ℓ = det(B s,ℓ W ℓ ) and so deg(det

det(C II s+1,ℓ+1 W ℓ+1 ) = det(C II s+1,ℓ+1 ) det(W ℓ+1 ) = G s+1 det B det W ℓ • X (ℓ+1)(k-
B det W ℓ ) = deg(B s,ℓ W ℓ )
I -→ (1, 2, 7) II -→ (2, 3, 7) I -→ (2, 4, 8).
We perform root-finding only if the decoding radius is increased. Therefore, the list C of operations becomes:

C = Root, S 1 , Root, S 2 , S 1 , Root .
With the information polynomial f (X) = 2X 2 + 10X + 6, we obtain with (2) the following codeword: c = (1, 0, 3, 10, 4, 2, 4, 10, 3, 0, [START_REF] Alekhnovich | Linear Diophantine Equations Over Polynomials and Soft Decoding of Reed-Solomon Codes[END_REF][START_REF] Brander | Interpolation and List Decoding of Algebraic Codes[END_REF][START_REF] Kötter | Algebraic Soft-Decision Decoding of Reed-Solomon Codes[END_REF][START_REF] Guruswami | Improved Decoding of Reed-Solomon Codes and Algebraic Geometry Codes[END_REF][START_REF] Guruswami | Improved Decoding of Reed-Solomon Codes and Algebraic Geometry Codes[END_REF][START_REF] Kötter | Algebraic Soft-Decision Decoding of Reed-Solomon Codes[END_REF].

Consider that r = (1, 15, 12, 13, 4, 7, 4, 10, 1, 0, 1, 10, 2, 11, 11, 10) was received, i.e., that the error e = (0, 15, 9, 3, 0, 5, 0, 0, 15, 0, 0, 4, 4, 0, 0, 12) of weight 8 occurred. We will depict the degrees of the polynomials in the matrices in the iterative decoding process. These are for this particular received word, but for a generic received word, the degrees are the same. For some p(X) ∈ Fq[X], we will write p(X) t for t ∈ N 0 if deg p(X) = t, and p(X) ⊥ if p(X) = 0, and we extend element-wise to matrices. To begin with, we have:

A 1,1 = G 0 -R 1 A 1,1 16 ⊥ 15 0 A 1,1 W 1 16 ⊥ 15 3
according to (4) and (5). We then apply Alekhnovich's algorithm on A 1,1 W 1 to obtain B 1,1 W 1 which is in weak Popov form. From this we can easily scale down the columns again to obtain B 1,1 . It took 11 row reductions, while ( l + 1)(D(A 1,1 W 1 ) + l + 1) = 28 was the upper bound, according to Lemma 13. We obtain

B 1,1 10 6 9 6 B 1,1 W 1 10 9 9 9 .
The first element in C is Root, so we pick the second row of B 1,1 , since it has weighted degree less than 10, and we interpret it as a polynomial:

Q 1,1 (X, Y ) = (14X 6 + 9X 4 + 9X 3 + 14X 2 + 4X + 1)Y + 13X 9 + 10X 8 + 7X 6 + 16X 5 + 8X 3 + 12X 2 + 3X + 16.
Root-finding of Q 1,1 (X, Y ) yields no results. The next element in C is S 1 , so we move to the next intermediate parameters (ŝ, l, τ ) = (1, 2, 7). From (6), we get In the next iteration we again meet a Root. For our polynomial we can pick either the second or third row of B 1,2 since both have weighted degree 8 < ŝ(n -τ ) = 9; we choose the second and obtain:

C I 1,2 =   B 1,1 0 0 0 -R 1   and so C I 1,2   10 6 ⊥ 9 6 ⊥ ⊥ 15 0   C I 1,2 W 2   10
Q 1,2 (X, Y ) = (15X 2 + 8X)Y 2 + (5X 5 + 2X 4 + 2X 3 + 10X 2 + 5X + 1)Y + 14X 8 + 16X 7 + 7X 6 + 8X 5 + 9X 4 + 9X 3 + X 2 + 9X + 15.
Again root-finding yields no results. The next element in C is S 2 and we get intermediate parameters (ŝ, l, τ ) = (2, 3, 7). We construct C II 2,3 according to (7) which gives: since they have weighted degree < s(n-τ ) = 16. Using the last, the obtained polynomial is:

C II 2,3     32 ⊥ ⊥ ⊥ 24
Q 2,4 (X, Y ) = (6X 3 + 16X 2 + 10X)Y 4 + (11X 6 + 16X 5 + 14X 4 + 15X 2 + 5X + 1)Y 3 + (15X 9 + X 8 + 5X 7 + 6X 6 + 12X 5 + 2X 4 + 6X 3 + 2X 2 + 12X + 2)Y 2 + (5X 12 + 5X 11 + 2X 10 + 9X 9 + 14X 8 + 6X 7 + 4X 6 + 3X 5 + 16X 4 + X 3 + 16X 2 + 6X)Y + 7X 14 + 16X 13 + 6X 12 + 4X 11 + 11X 10 + 11X 8 + 4X 7 + 5X 6 + 16X 5 + 12X 4 + 15X 3 + 6X 2 + 16X + 1.
Indeed, Q 2,4 (X, 2X 2 + 10X + 6) = 0 and root-finding retrieves f (X) for us.

As the example shows, performing module minimisation on a matrix can be informally seen to "balance" the row-degrees such that they all become roughly the same size. The complexity of this reduction depends on the number of row reductions, which in turn depends on the "unbalancedness" of the initial matrix. The matrices

C I 1,2 , C II 2,3
and C II 2,4 are more balanced in row-degrees than using A 1,2 , A 2,3 and A 2,4 directly.

Complexity Analysis

Using the estimates of the two preceding subsections, we can make a rather precise worst-case asymptotic complexity analysis of Algorithm 2. The average running time will depend on the exact choice of C but we will see that the worst-case complexity will not. First, it is necessary to know the complexity of performing a root-finding attempt.

Lemma 24 (Complexity of Root-Finding) Given a polynomial Q(X, Y ) ∈

Fq[X]

[Y ] of Y -degree at most ℓ and X-degree at most N , there exists an algorithm to find all Fq[X]-roots of complexity O ℓ 2 N log 2 N log log N , assuming ℓ, q ∈ O(N ).

Proof We employ the Roth-Ruckenstein [START_REF] Roth | Efficient Decoding of Reed-Solomon Codes Beyond Half the Minimum Distance[END_REF] root-finding algorithm together with the divide-and-conquer speed-up by Alekhnovich [START_REF] Alekhnovich | Linear Diophantine Equations Over Polynomials and Soft Decoding of Reed-Solomon Codes[END_REF]. The complexity analysis in [START_REF] Alekhnovich | Linear Diophantine Equations Over Polynomials and Soft Decoding of Reed-Solomon Codes[END_REF] needs to be slightly improved to yield the above, but see [START_REF] Beelen | On Rational Interpolation-Based List-Decoding and List-Decoding Binary Goppa Codes[END_REF] for easy amendments. ⊓ ⊔ Theorem 25 (Complexity of Algorithm 2) For a given GRS(n, k) code, as well as a given list of steps C for Algorithm 2 with ultimate parameters (s, ℓ, τ ), the algorithm has worst-case complexity O(ℓ 4 sn log 2 n log log n), assuming q ∈ O(n).

Proof The worst-case complexity corresponds to the case that we do not break early but run through the entire list C. Precomputing A 1,1 using Lagrangian interpolation can be performed in O(n log 2 n log log n), see e.g. [9, p. 235], and reducing to B 1,1 is in the same complexity by Lemma 15. Now, C must contain exactly ℓ -s S 1 -elements and s -1 S 2 -elements. The complexities given in Corollaries 19 and 22 for some intermediate ŝ, l can be relaxed to s and ℓ. Performing O(ℓ) micro-steps of type I and O(s) of type II is therefore in O(ℓ 4 sn log 2 n log log n).

It only remains to count the root-finding steps. Obviously, it never makes sense to have two Root after each other in C, so after removing such possible duplicates, there can be at most ℓ elements Root. When we perform root-finding for intermediate ŝ, l, we do so on a polynomial in M ŝ, l of minimal weighted degree, and by the definition of M ŝ, l as well as Theorem 1, this weighted degree will be less than ŝ(n -τ ) < sn. Thus we can apply Lemma 24 with N = sn.

⊓ ⊔

The worst-case complexity of our algorithm is equal to the average-case (and worstcase) complexity of the Beelen-Brander [START_REF] Beelen | Key equations for list decoding of Reed-Solomon codes and how to solve them[END_REF] list decoder. However, Theorem 25 shows that we can choose as many intermediate decoding attempts as we would like without changing the worst-case complexity. One could therefore choose to perform a decoding attempt just after computing B 1,1 as well as every time the decoding radius has increased. The result would be a decoding algorithm finding all closest codewords within some ultimate radius τ . If one is working in a decoding model where such a list suffices, our algorithm will thus have much better average-case complexity since fewer errors occur more frequently than many.

Re-Encoding Transformation

We now discuss how to adjust Algorithm 2 to incorporate the re-encoding transformation proposed in [START_REF] Kötter | The Re-Encoding Transformation in Algebraic List-Decoding of Reed-Solomon Codes[END_REF][START_REF] Kötter | A Complexity Reducing Transformation in Algebraic List Decoding of Reed-Solomon Codes[END_REF]. The basic observation is that we can correct r if we can correct r -ĉ for any ĉ ∈ GRS(n, k). If we chose ĉ such that r -ĉ for some reason is easier to handle in our decoder, we can save computational work. As in the original articles, we will choose ĉ such that it coincides with r in the first k positions; this can be done since it is just finding a Lagrange polynomial of degree k -1 that goes through these points. The re-encoded received word will therefore have 0 on the first k positions. For ease of notation, assume that r is this re-encoded received word with first k positions zero, and we can reuse all the objects introduced in the preceding sections. Define

L(X) k-1 i=0 (X -α i ). ( 8
)
Obviously L(X) | G(X) so introduce Ḡ(X) = G(X)/L(X). However, since r i = 0 for i < k then also L(X) | R(X); this will be the observation which will save us computations. Introduce therefore R(X) = R(X)/L(X). Regard now A s,ℓ of (4); it is clear that L(X) s-t divides every entry in the tth column for t < s. This implies that the image of the following bijective map is indeed Fq[X, Y ]:

ϕ : M s,ℓ → Fq[X, Y ] Q(X, Y ) → L(X) -s Q(X, L(X)Y ). (9)
Extend ϕ element-wise to sets of M s,ℓ elements, and note that ϕ is therefore an isomorphism between M s,ℓ and ϕ(M s,ℓ ). The idea is now that the elements in ϕ(M s,ℓ ) have lower X-degree than those in M s,ℓ , and we can therefore expect that working with bases of ϕ(M s,ℓ ) is computationally cheaper than with bases of M s,ℓ . Since we are searching a minimal (1, k -1)-weighted polynomial in M s,ℓ , we need to be sure that this property corresponds to something sensible in ϕ(M s,ℓ ). The following lemma and its corollary provides this:

Lemma 26 For any Q(X, Y ) in M s,ℓ wdeg 1,k-1 Q(X, Y ) = wdeg 1,-1 ϕ(Q(X, Y )) + sk. Proof We have wdeg 1,k-1 Q(X, Y ) = max i deg Q [i] (X) + i(k -1
) so we obtain:

wdeg 1,-1 ϕ(Q(X, Y )) = max i deg Q [i] (X) -s deg L(X) + i deg L(X) -i = max i deg Q [i] (X) + i(k -1) -sk. ⊓ ⊔ Corollary 27 Q(X, Y ) has minimal (1, k -1)-weighted degree in M s,ℓ if and only if ϕ(Q(X, Y )) has minimal (1, -1)-weighted degree in ϕ(M s,ℓ ).
Let us now describe the basis of ϕ(M s,ℓ ) corresponding to the one in (4):

Theorem 28 The module ϕ(M s,ℓ ) is generated as an Fq[X]-module by the ℓ + 1 polynomials P (t) (X, Y ) ∈ Fq[X, Y ] given by

P (t) (X, Y ) = Ḡ(X) s-t (Y -R(X)) t , for 0 ≤ t < s, P (t) (X, Y ) = (L(X)Y ) t-s (Y -R(X)) s , for s ≤ t ≤ ℓ.
Proof Follows directly from Theorem 5 and the mapping as defined [START_REF] Von Zur Gathen | Modern Computer Algebra[END_REF].

We can represent the basis of ϕ(M s,ℓ ) by the (ℓ + 1) × (ℓ + 1) matrix over Fq[X]

(compare to (4)):

Ās,ℓ                  Ḡs Ḡs-1 (-R) Ḡs-1 0 Ḡs-2 (-R) 2 2 Ḡs-2 (-R) Ḡs-2 . . . . . . (-R) s s 1 (-R) s-1 . . . 1 L(-R) s . . . L L 2 (-R) s . . . L 2 0 . . . . . . L ℓ-s (-R) s . . . L ℓ-s                  . ( 10
)
We need an analogue of Corollary 8 for the (1, -1)-weighted degree, i.e., we should find a diagonal matrix to multiply on Ās,ℓ such that when module minimising the result, we will have a row corresponding to a polynomial in ϕ(M s,ℓ ) with minimal (1, -1)weighted degree. We cannot use diag(1, X -1 , . . . , X -ℓ ), since multiplying with negative powers of X might cause us to leave the polynomial ring; however, we can to this add the same power to all the diagonal elements such that they become non-negative:

Wℓ = diag X ℓ , X ℓ-1 , . . . , 1 . (11)
Therefore, for a vector q = (Q 0 (X)X ℓ , . . . , Q ℓ (X)X 0 ) in the row-space of Ās,ℓ Wℓ corresponds a polynomial Q(X, Y ) = ℓ t=0 Q t (X)Y t , and we will have the identity deg q = wdeg 1,-1 Q + ℓ. Obviously then, a minimal degree vector in Ās,ℓ Wℓ is a minimal (1, -1)-weighted polynomial in ϕ(M s,ℓ ).

Finally, we need adjusted variants of the micro-steps I and II. The necessary adaptions of Algorithm 2 are summarised in the following lemma:

Lemma 29 Let B ∈ Fq[X] (ℓ+1)×(ℓ+1) be the matrix representation of a basis of ϕ(M s,ℓ ). If B Wℓ is in weak Popov form, then one of the rows of B corresponds to a polynomial in ϕ(M s,ℓ ) with minimal (1, -1)-weighted degree.

Modified micro-steps of type I and II can be obtained from the following. Let B(0) (X, Y ), . . . , B(ℓ) (X, Y ) ∈ Fq[X, Y ] be a basis of M s,ℓ . Then the following is a basis of M s,ℓ+1 :

B(0) (X, Y ), . . . , B(ℓ) (X, Y ), (L(X)Y ) ℓ-s+1 (Y -R(X)) s . (12)
Similarly, the following is a basis of M s+1,ℓ+1 :

Ḡs+1 (X), B(0) (X, Y )(Y -R(X)), . . . , B(ℓ) (X, Y )(Y -R(X)). (13)
Proof The first part follows from the previous discussion and analogously to Corollary 8. The recursive bases of ( 12) and ( 13

Ā1,1 = Ḡ 0 -R 1 Ā1,1 12 ⊥ 11 0 Ā1,1 W1 13 ⊥ 12
0 .

Remark Brander briefly described in his thesis [START_REF] Brander | Interpolation and List Decoding of Algebraic Codes[END_REF] how to incorporate re-encoding into the Beelen-Brander interpolation algorithm by dividing out common powers of L(X) in the first s columns of A s,ℓ . Here we construct instead Ās,ℓ where powers of L(X) are also multiplied on the latter ℓ -s columns, since we need the simple recursions of bases of ϕ(M s,ℓ ) which enables the micro-steps. However, before applying module minimisation, we could divide away this common factor from those columns and just adjust the weights accordingly (i.e., multiplying X k(t-s) on the tth element of Wℓ ); this will further reduce the complexity of the minimisation step. The micro-steps would then need to be modified; the simplest way to repair this is to multiply back the powers of L(X) before applying a micro-step, and then remove them again afterwards. With a bit more care one can easily do this cheaper, though the details become technical.

In asymptotic terms, the computational complexity of the iterative interpolation method stays exactly the same with re-encoding as without it, since O(n -deg L) = O(n -k) = O(n) under the usual assumption of n/k being constant. The same is true for the original re-encoding scheme of Kötter-Vardy [START_REF] Kötter | Algebraic Soft-Decision Decoding of Reed-Solomon Codes[END_REF][START_REF] Kötter | The Re-Encoding Transformation in Algebraic List-Decoding of Reed-Solomon Codes[END_REF]. However, most of the polynomials that are handled in the matrix minimisation will be of much lower degree than without re-encoding; for relatively high-rate codes this will definitely be noticeable in real computation time.

In [START_REF] Kötter | The Re-Encoding Transformation in Algebraic List-Decoding of Reed-Solomon Codes[END_REF]Thm. 10], it was shown that the root-finding procedure of Roth-Ruckenstein [START_REF] Roth | Efficient Decoding of Reed-Solomon Codes Beyond Half the Minimum Distance[END_REF], or its divide-&-conquer variant by Alekhnovich [START_REF] Alekhnovich | Linear Diophantine Equations Over Polynomials and Soft Decoding of Reed-Solomon Codes[END_REF] can be directly applied to an interpolation polynomial in ϕ(M s,ℓ ), so we can avoid to construct and work on the larger polynomial in M s,ℓ . Instead of finding f (X), one will find the power series expansion of f (X)/L(X). The fraction in reduced form can be retrieved from the power series expansion using Padé approximation: e.g. by the Berlekamp-Massey algorithm or by module minimising a certain 2 × 2 matrix. See e.g. [19, Section 2.5] for a general description of the latter. From the reduced fraction, f (X) can be obtained by re-extending the fraction.

Interestingly, one can easily calculate that the orthogonality defects stays the same, i.e., D(C I s,ℓ+1 W ℓ+1 ) = D( CI s,ℓ+1 Wℓ+1 ), where CI s,ℓ+1 is the matrix corresponding to a micro-step of type I in the re-encoded version. The analogue equality holds for type II. This means that, roughly, the number of row operations carried out by the module minimisation algorithm is unchanged.

Simulation Results

The proposed algorithm has been implemented in Sage, Version 5.13 [START_REF] Stein | Sage Mathematics Software (Version 5.13[END_REF], using the Mulders-Storjohann algorithm for module minimisation, and the Roth-Ruckenstein root-finding procedure [START_REF] Roth | Efficient Decoding of Reed-Solomon Codes Beyond Half the Minimum Distance[END_REF]. For comparison, we also implemented construction of A s,ℓ , leading immediately to the Lee-O'Sullivan algorithm [START_REF] Lee | List Decoding of Reed-Solomon Codes from a Gröbner Basis Perspective[END_REF].

Figure 1 shows the total number of finite field multiplications performed for complete runs of the decoding algorithms, using the GRS(16, 4) code over F 17 as considered in Example 3. For each algorithm, and for each number of errors ε ≤ τ , 1000 random codewords were generated and subjected to a random error pattern of weight precisely ε. The solid line gives the number of operations of the proposed multi-trial algorithm for any number of errors. For the Lee-O'Sullivan decoder, one chooses the maximal decoding radius initially, and the figure depicts choosing both τ = 7, 8 as dashed lines.

The minimum-distance choice of τ = 6 coincides completely with the multi-trial algorithm since A s,ℓ for ε ≤ 6 and so is not shown.

The figure demonstrate that the multi-trial algorithm provides a huge gain whenever there are fewer errors than Lee-O'Sullivan's target, while not having a disadvantage in the matching case. The right-hand graph shows the complexity when using the re-encoding transformation, and we can observe a speedup of between 30% and 50%. The number of operations spent in constructing the matrices and for the rootfinding step are relatively small compared to the number of operations needed for the row-reduction (for the GRS(16, 4) code, less than 5%).

Unfortunately, the performance of our operation-counting implementation for the decoding algorithm does not allow to run simulations with much larger codes. Without counting, however, we can use optimised data structures in Sage [START_REF] Stein | Sage Mathematics Software (Version 5.13[END_REF] which run much faster. We have observed for the short GRS(16, 4) code that the system-clock time spent with these data structures correspond very well to the operations counted. Extrapolating, we can, albeit with larger uncertainty, make comparisons on larger codes using system-clock measurements. Doing so, we have observed behaviour resembling that of the GRS(16, 4) code. For example, decoding a GRS(64, 25) code up to 23 errors (requiring (s, ℓ) = (4, 6)) showed the multi-trial being slightly faster than Lee-O'Sullivan in the worst case, while of course still giving a large improvement for fewer errors. When decoding a GRS(255, 120) code up to 74 errors (requiring (s, ℓ) = (4, 5)), Lee-O'Sullivan [START_REF] Lee | List Decoding of Reed-Solomon Codes from a Gröbner Basis Perspective[END_REF] was slightly faster by about 15% in the worst case. It should also be noted that root-finding took up significantly more time for these larger codes, around 15% of the total time for Lee-O'Sullivan and 20% for the multi-trial.

As with any simulation, there are caveats to these results. In truth, only the wallclock time spent by highly optimised implementations of various approaches can be fairly compared. Also, we did not test the asymptotically fast Alekhnovich's method for module minimisation. Investigations performed by Brander in Magma indicated that the gain in using this algorithm in place of Mulders-Storjohann might only be present once the code length exceeds about 4000 [START_REF] Brander | Interpolation and List Decoding of Algebraic Codes[END_REF].

The implementation of the algorithm, including the simulation setup, is freely available via http://jsrn.dk/code-for-articles.

Conclusion

An iterative interpolation procedure for list decoding GRS codes based on Alekhnovich's module minimisation was proposed and shown to have the same worstcase complexity as Beelen and Brander's [START_REF] Beelen | Key equations for list decoding of Reed-Solomon codes and how to solve them[END_REF]. We showed how the target module used in Beelen-Brander can be minimised in a progressive manner, starting with a small module and systematically enlarging it, performing module minimisation in each step. The procedure takes advantage of a new, slightly more fine-grained complexity analysis of Alekhnovich's algorithm, which implies that each of the module refinement steps runs fast.

We furthermore incorporated the re-encoding transformation of Kötter and Vardy [START_REF] Kötter | Algebraic Soft-Decision Decoding of Reed-Solomon Codes[END_REF] into our method, which provides a noticeable, if not asymptotic, gain in computational complexity.

The main advantage of the algorithm is its granularity which makes it possible to perform fast multi-trial decoding: we attempt decoding for progressively larger decoding radii, and therefore find the list of codewords closest to the received. This is done without a penalty in the worst case but with an obvious benefit in the average case.

The Beelen-Brander approach for interpolation is not the asymptotically fastest: using the module minimisation algorithm by Giorgi et al. [START_REF] Giorgi | On the Complexity of Polynomial Matrix Computations[END_REF], one gains a factor ℓ. By a completely different approach, Chowdhury et al. [START_REF] Chowdhury | Faster algorithms for multivariate interpolation with multiplicities and simultaneous polynomial approximations[END_REF] further beat this by a factor ℓ/s, achieving O(ℓ 2 s 2 n log O(1) (n)). It is unclear for which sizes of the parameters these asymptotic improvements have concrete benefits, and whether a multi-trial approach can be developed for them.

2

  where we use deg U = deg det U = deg det V and that the LP(u i ) are all different.

  ) follow completely analogous to Lemmas 17 and 20, given Theorem 28. ⊓ ⊔ Example 30 In the case of the GRS(16, 4) code over F 17 with final decoding radius τ = 8 as shown in Example 23, then deg L(X) = 4 and the initial matrix satisfies:

Fig. 1

 1 Fig.1Comparison of the number of field multiplications for list decoding of an GRS[START_REF] Lee | List Decoding of Reed-Solomon Codes from a Gröbner Basis Perspective[END_REF][START_REF] Beelen | On Rational Interpolation-Based List-Decoding and List-Decoding Binary Goppa Codes[END_REF] code over F 17 . The operations of the Lee-O'Sullivan[START_REF] Lee | List Decoding of Reed-Solomon Codes from a Gröbner Basis Perspective[END_REF] algorithm with different aimed decoding radii and the proposed multi-trial algorithm are illustrated. Note the logarithmic y-axis. Subfigure (a) illustrates the number of operations without re-encoded points. The gain due to the re-encoding procedure is visible in Subfigure (b).

  by Lemma 10 since B s,ℓ W ℓ is in weak Popov form. Thus we get Corollary 22 The complexity of MicroStep2(s, ℓ, B s,ℓ ) is O(ℓ 4 n log 2 n log log n).Example 23 We consider again the GRS(16, 4) code over F 17 of Example 3, and specify now that α i = i + 1 and w i = 1 for i = 0, . . . , 15. The aimed decoding radius is τ = 8 and therefore the permissible triple (s, ℓ, τ ) = (2, 4, 8) should be reached iteratively by Algorithm 2. To maximise the decoding radius during the procedure, we could choose the following sequence of intermediate parameters (ŝ, l, τ ):

	deg det(C II s+1,ℓ+1 W ℓ+1 ) = (s + 1)n + deg(B s,ℓ W ℓ ) + (ℓ + 1)(k -1).
	The lemma follows from the difference of the two calculated quantities.	⊓ ⊔
	(1, 1, 6)

  Since D(B 1,2 W 2 ) = 12, Lemma 13 gives 45 as the upper bound on the number of row reductions, but it was done with only 24.

							9 ⊥	
							9 9 ⊥	 .
							⊥ 18 6
	Running Alekhnovich's algorithm on C I 1,2 W 2 , we obtain:
		 9 4 2				9 7 8	
	B 1,2	 8 5 2		B 1,2 W 2		8 8 8	 .
		8 5 1				8 8 7

  The next element in C is S 2 , so we construct C II 2,4 according to[START_REF] Cassuto | On the Average Complexity of Reed-Solomon List Decoders[END_REF] and get:We needed 86 row reductions for the module minimisation, while the upper bound was 145 since we calculated D(C II 2,4 W 4 ) = 24. The last iteration is again a Root, and we can use either of the two last rows of C II

	C II 2,4	      17 14 10 6 ⊥ 17 13 10 7 ⊥ 16 13 9 7 ⊥ 16 13 10 6 ⊥	     	C II 2,4 W 4	      17 17 16 15 ⊥ 17 16 16 16 ⊥ 16 16 15 16 ⊥ 16 16 16 15 ⊥	     
	B 2,4		⊥ ⊥ 30 15 0       16 13 10 6 3 15 13 8 6 3 16 12 9 6 3 14 12 9 6 3	     	B 2,4 W 4	⊥ ⊥ 36 24 12       16 16 16 15 15 15 16 14 15 15 16 15 15 15 15 14 15 15 15 15	     	.
			14 12 9 6 2			14 15 15 15 14
								2,4
			19 17 2 23 20 17 2	   	C II 2,3 W 3	   	32 ⊥ ⊥ ⊥ 24 22 23 11 23 23 23 11	    .
			23 20 16 1					23 23 22 10
	We needed 90 row reductions to reduce C II 2,3 W 3 to weak Popov form, while the upper
	bound is 160, since we calculated D(C II 2,3 W 3 ) = 36. After row-reduction, we obtain
	B 2,3 W 3 :
	B 2,3	    17 14 10 6 17 13 10 7 16 13 9 7	   	B 2,3 W 3	   	17 17 16 15 17 16 16 16 16 16 15 16	    .
			16 13 10 6					16 16 16 15

Acknowledgement

The authors thank Daniel Augot for fruitful discussions. This work has been supported by German Research Council Deutsche Forschungsgemeinschaft (DFG) under grant Bo867/22-1 and Ze1016/1-1.

Algorithm 2: Multi-Trial Guruswami-Sudan Decoding

Input: A GRS(n, k) code over Fq with w 0 , . . . , w n-1 ∈ F * q The received vector r = (r 0 , . . . , r n-1 ) ∈ F n q A permissible triple (s, ℓ, τ ) ∈ N 3 A list C with elements in {S 1 , S 2 , Root} with ℓs instances of S 1 and s -1 instances of S 2 Preprocessing: Calculate r ′ i = r i /w i for all i = 0, . . . , n -1 Construct A 1,1 , and compute B 1,1 from A 1,1 W 1 using Alekhnovich's algorithm Initial parameters (ŝ, l) ← (1, 1)

The Possible Refinement Paths

The choice of C provides much flexibility to the algorithm. The two extreme cases are perhaps the most generally interesting: the one without any Root elements except at the end, i.e., usual list-decoding; and the one with a Root element each time the intermediate decoding radius τ has increased, i.e., a variant of maximum-likelihood decoding up to a certain radius. In Section 4.5, we discuss complexity concerns with regards to the chosen path; it turns out that the price of either type of micro-step is very comparable, and the worstcase complexity is completely unchanged by the choice of C. However, in the case where we have multiple Root elements we want to minimise the average computation cost: considering that few errors occur much more frequently than many, we should therefore seek to reach each intermediate decoding radius after as few micro-steps as possible.

Since we do not have a refinement which increases only s, we are inherently limited in the possible paths we can choose, so the question arises if this limitation conflicts with our interest as given above.

First -and most important -for any given final decoding radius τ , we mentioned in Section 2.2 that the corresponding parameters satisfy s < ℓ, and so we can reach these values using only micro-steps of type I and II.

For the intermediate steps, the strongest condition we would like to have satisfied is the following: Let d/2 ≤ τ 1 < . . . < τm = τ be the series of intermediate decoding radii where we would like to attempt decoding. Let (s i , ℓ i ) be chosen such that (s i , ℓ i , τ i )