- San Diego State University

THE DIMENSION OF SUBFIELD-SUBCODES OF A SUBCLASS OF
GENERALIZED REED-SOLOMON CODES
A Thesis
Presented to the
Faculty of
San Diego State University
In Partial Fulfillment
of the Requirements for the Degree
Master of Science
in
Applied Mathematics
by
Kyle D. Marshall
Fall 2011
iii
c 2011
Copyright by
Kyle D. Marshall
iv
DEDICATION
Coconut Jellybeans.
v
The essence of mathematics is not to make simple things complicated, but to make
complicated things simple.
– S. Gudder
vi
ABSTRACT OF THE THESIS
The Dimension of Subfield-Subcodes of a Subclass of Generalized Reed-Solomon Codes
by
Kyle D. Marshall
Master of Science in Applied Mathematics
San Diego State University, 2011
A fundamental problem in coding theory is to find codes with good parameters over a
fixed field. Of particular interest is the case when the field is the prime subfield of a finite
field, in which case many of the best known codes arise as subfield-subcodes of codes defined
over larger fields. In general, the dimension of a subfield-subcode is non-trivial to compute.
This thesis presents a particular class of subfield-subcodes of generalized Reed-Solomon
codes and derives a lower bound for the true dimension of the subfield-subcodes of this class.
The codes are the subfield-subcodes of shortened generalized Reed-Solomon codes with a
particular twist. In order to understand these codes, an alternative but equivalent definition of
generalized Reed-Solomon codes is introduced. Results from computational experiments are
presented, showing that this family of codes contains many best known codes over F2 , F3 , and
F5 .
vii
TABLE OF CONTENTS
PAGE
ABSTRACT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
vi
LIST OF TABLES. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii
LIST OF FIGURES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ix
ACKNOWLEDGEMENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
x
CHAPTER
1
2
3
4
5
Background. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.1
Basics of Forward Error Correction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.2
Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.3
Preliminary Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
Generalized Reed-Solomon Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
2.1
Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
2.2
Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
2.3
New Codes from Old Ones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
2.4
Dual of a GRS Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
A Bound for the Dimension of a Class of GRS Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
3.1
Cyclotomic Polynomials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
3.2
Shortened and Punctured GRS Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3
The Dimension of Subfield-Subcodes of Certain Shortened GRS Codes . . . . 14
Computations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.1
Best-Known Codes Obtained from Lower Bound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.2
True Dimension of Subfield-Subcodes of Shortened GRShxi Codes . . . . . . . . 20
Conclusion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
BIBLIOGRAPHY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
APPENDICES
A ALGORITHMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
B TABLES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
viii
LIST OF TABLES
PAGE
Table B.1. Best Known SFSCs for GRSk hxi over F2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Table B.2. Best Known SFSCs for GRSk hxi over F3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Table B.3. Best Known Codes Shortened from the F256 code GRSk hxi, Shortened in t Coordinates. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Table B.4. New Codes over F2 From F256 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Table B.5. New Codes over F2 Obtained from C1 and C2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Table B.6. New Codes over F3 from F243 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Table B.7. New Codes over F3 Obtained C20 , . . . , C33 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Table B.8. New Codes over F5 from F125 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Table B.9. New Codes over F5 Obtained C95 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
ix
LIST OF FIGURES
PAGE
Figure 1.1. Elements of forward-error correction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
Figure 1.2. Codewords separated by spheres of radius b d−1
c. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
3
x
ACKNOWLEDGEMENTS
I would like to thank Dr. O’Sullivan for cultivating my interest in coding theory and
his patience and helpfulness while supervising this thesis. I would also like to thank
Dr. Hernando for helping to refine many of the ideas presented here. Lastly, I would like to
show my appreciation for all the love and support of my family and friends over the last few
years.
1
CHAPTER 1
BACKGROUND
1.1 BASICS OF F ORWARD E RROR C ORRECTION
In this thesis, we are concerned with the aspect of coding theory related to forward
error correction. The objective of forward error correction (or encoding) is to be able to
reproduce a message at a location different from that of the sender in the presence of
interfering factors. This thesis will only be considering the simplified communication system
depicted in Figure 1.1, consisting of five players - the source, encoder, channel, decoder, and
receiver (often called the sink). The source is the sender of the message. An example of a
source can be the user of a telephone sending a text message. The source has a number of
possible messages which can be sent. Each message is passed through an encoder which
alters the message. This altered message, called a codeword, is then passed through the
channel. Properties of the channel often distort the codeword in a way that recognition is
difficult or impossible in the absense of encoding. Different types of channels introduce errors
with different distributions, and so the channel is normally a major factor in designs when
deciding the type of encoding to be used. In practice, interfering factors are usually
attributable to atmospheric noise (in the instance of radio communication) or damage
(scratches on compact disks). The signal is then intercepted (by an antennae, for example),
and decoded in such a way that the receiver can recover the intended message despite the
senseword being different than the codeword. [19]
1.2 I NTRODUCTION
Generalized Reed-Solomon codes form a class of heavily studied codes for several
reasons. Among these are that the class of generalized Reed-Solomon codes is self-dual and
many classical good codes can be derived from generalized Reed-Solomon codes. In
particular, subfield-subcodes of generalized Reed-Solomon codes, called alternant codes,
include important families of codes, such as BCH codes and Goppa codes. Generalizations of
Goppa Codes to algebraic geometric codes were the first codes shown to beat the
Gilbert-Varshamov bound [14]. While there are many good codes which arise as
subfield-subcodes of generalized Reed-Solomon codes, it is generally not known how to find
them or how to determine their parameters.
2
Source
message
1001
/
Encoder
codeword
0111001
/
Channel
senseword
0101001
/
Decoder
message
1001
/
Receiver
Figure 1.1. Elements of forward-error correction.
Generalized Reed-Solomon codes are defined in terms of an evaluation vector and a
twist vector. The fundamental goal in the study of alternant codes is to find twist vectors from
which good alternant codes arise. In most cases, it is difficult to establish an exact formula for
the true dimension of an alternant code. Some general bounds for the dimension of
subfield-subcodes exist, for instance in [11], [13], and [12], and for very specific codes the
true dimension may be computed [18][4].
In Chapter 3, we will propose propose an alternative definition for generalized
Reed-Solomon codes which emphasizes a ring theoretic point of view. We use this definition
to study a class of alternant codes which are defined in terms of their duals. Our main tool is
Delsarte’s theorem, and we are motivated by a technique used in [10]. In order to study these
codes, we present some results about cyclotomic cosets which are also used in [5] to compute
the dimension of subfield-subcodes of toric codes. Using certain polynomials with support in
cyclotomic cosets, we are able to create a large class of codes which contains many codes
with good parameters. Specifically, the codes we study are the subfield-subcodes of certain
shortened generalized Reed-Solomon codes - those whose duals are punctured classical
Reed-Solomon Codes. We are able to find a lower bound for the true dimension of these
codes, and using this bound results in a large number of best known codes according to [9].
Furthermore, we run an algorithm to compute the true dimension of many of these codes and
find many which exceed the best known codes. These can be found in Appendix B.
1.3 P RELIMINARY D EFINITIONS
All the proofs of the following can be found in [17], [8], or [7].
Definition 1.1. A linear code C over Fpm of length n is a subspace of the vector space Fnpm .
The dimension of a linear code is the dimension of C as a vector space over Fpm . The
dimension is usually denoted by k. The elements of a code are called codewords.
Definition 1.2. Let C be a linear code of length n and let c, c0 ∈ C. Furthermore, let
c = (c0 , c1 , ..., cn−1 ) and c0 = (c00 , c01 , ..., c0n−1 ). The Hamming distance is given by
dH (c, c0 ) = |{i : 0 ≤ i < n, ci 6= c0i }|.
The minimum distance of C, is the smallest hamming distance, as we let c, c0 vary over all the
non-zero codewords of C.
3
The Hamming weight of a codeword c is equal to dH (c, 0). It is the number of
non-zero coordinates of the codeword c.
Proposition 1.2.1. Let C be a linear code. The minimum distance of C is equal to the
Hamming weight of the codeword with the fewest non-zero components.
Since we are only going to consider linear codes, we will refer to linear codes as just
codes. We are interested mainly in three parameters of a code - the length, the dimension, and
the minimum distance. These three parameters are used to describe a code, although two
codes with the same length, dimension, and minimum distance may not be equivalent. If the
length is n, the dimension k and distance d, we say that a code is an [n, k, d] code.
Large dimension is good because the dimension determines the number of messages
that can be encoded. If we are considering a code defined over Fp of dimension k, then there
are a total of pk codewords. A large minimum distance determines how many errors a code
can correct. A code with minimum distance d can correct up to b d−1
c errors, as Figure 1.2
2
shows [8]. Optimally, a code should have both a large dimension and a large distance.
However, these goals can often not be achieved simultaneously, as Proposition 1.2.2 shows.
Proposition 1.2.2. [Singleton Bound] Let C be a code of length n and dimension k. Then, the
minimum distance, d, satisfies
d ≤ n − k + 1.
(1.1)
A table of the best known codes can be found in [9].
y?
•?
w•
??
??
??
??
??
??
?? • x + e
?
x
•
Figure 1.2. Codewords separated by
spheres of radius b d−1
c.
2
4
CHAPTER 2
G ENERALIZED R EED -S OLOMON C ODES
2.1 I NTRODUCTION
In 1960, Irving Reed and Gustave Solomon demonstrated a construction of codes from
the evaluation of polynomials on the elements of a finite field. These codes are now known as
Reed-Solomon codes. Initially, there was no efficient decoding algorithm so, despite having
nice properties, the codes were impractical until 1969 when Elwyn Berlekamp and James
Massey developed an algorithm based on finding a shortest linear feedback shift register. The
Berlekamp-Massey algorithm allowed for the widespread application of Reed-Solomon
codes, most notably in compact disks, DSL, bar codes, and the Voyager space program [19]
Sometimes it is necessary to alter a Reed-Solomon code in order to achieve a desired
length. While the length of a Reed-Solomon code is fixed, the length can be decreased by
puncturing or shortening or increased by extending. Shortened Reed-Solomon codes are used
in encoding of music onto CD players [19]. Another way of obtaining a code of the correct
length is to look at a subfield-subcode of code over a larger field. Many best known codes
over prime subfields are obtained as subfield-subcodes of Generalized Reed-Solomon codes
in this way [9], and therefore this is an area of great interest.
2.2 BACKGROUND
For every prime number p and positive integer m, we let Fpm denote the finite field of
pm elements. The group of units of Fpm will be denoted by F∗pm , the size of which will be
given by N = |F∗pm | = pm − 1. All omitted proofs can be found in [17], [8], or [7].
Definition 2.1. Let α = (α0 , α1 , ..., αn−1 ), n ≤ N , be an n-tuple of distinct elements of F∗pm ,
and let v = (v0 , v1 , ..., vn−1 ) ∈ (F∗pm )n . The Generalized Reed-Solomon (GRS) code with
evaluation vector α, twist vector v, and dimension k, where 0 ≤ k ≤ n is given by
GRSk (α, v) = {Evα,v (f ) : deg f < k}
where Evα,v (f ) = (v0 f (α0 ), v1 f (α1 ), ..., vn−1 f (αn−1 ))
A narrow-sense Reed-Solomon (RS) code occurs when n = N , αi = η i−1 for η a
primitive root in Fpm , and vi = 1 for all 0 ≤ i ≤ N − 1. Let
c = (f (1), f (η), f (η 2 ), ..., f (η N −2 ))
(2.1)
5
for some f with deg f < k and consider the right cyclic shift
R(c) = (f (η N −2 ), f (1), f (η), ..., f (η N −3 ))
= (g(1), g(η), g(η 2 ), ..., g(η N −2 ))
where g(x) = f (η −1 x). Therefore, deg g = deg f < k and R(c) is also a codeword of a RS
code. This shows that narrow-sense Reed-Solomon codes are cyclic codes.
Consider a GRSk (α, v) code as in (2.1). Any codeword is an n-tuple of evaluations of
polynomials of degree less than k, and therefore can have at most k − 1 zeros. Thus, the
weight of each codeword is at least n − k + 1 and so the minimum distance must equal
n − k + 1 by the singleton bound. Since the minimum distance is maximal for each possible
length and dimension, this shows that GRS codes are maximum distance separable (MDS)
and the code defined in (2.1) is a [n, k, n − k + 1] code over Fpm .
2.3 N EW C ODES FROM O LD O NES
There are many ways to alter a code to produce a new code with different parameters.
This is used, for instance, to reduce the length of a Reed-Solomon code in compact disks. In
addition to adjusting the length of a code, other properties of the code can be manipulated,
such as the redundancy or even the parent field. This section will cover four
techniques–subfield-subcodes, trace codes, punctured codes, and shortened codes.
Subfield-subcodes and trace codes are two ways of changing the parent field to that of the
prime subfield. There is an algebraic relationship between these operations, which is
encapsulated by a theorem of Delsarte. In a similar way, punctured codes and shortened codes
have a dual relationship.
Subfield-subcodes of GRS codes are known as alternant codes and are widely studied
because many good codes, including Goppa codes and BCH codes, belong to this family. It is
not known, however, which twist vectors give rise to alternant codes with good parameters.
Definition 2.2. Let C be a code over Fpm . The subfield-subcode (SFSC) of C is the set of
codewords of C whose coordinates belong to Fp , that is C ∩ Fnp .
Definition 2.3. Let C be a code over Fpm . The code defined by
tr(C) = {(tr(c0 ), tr(c1 ), ..., tr(cn−1 )) : c = (c0 , c1 , ..., cn−1 ) ∈ C}
where tr(x) = x + xp + ... + xp
m−1
is called the trace code of C.
Much work has been on subfield-subcodes and trace codes. Stichtenoth studies
subfield-subcodes in [12], and his work is improved upon in [11]. van der Vlugt studies trace
codes in [16] and [15] and Roseiro looks at trace codes in relation to Goppa codes in [10].
6
Delsarte was one of the first to study the relationship between subfield-subcodes and trace
codes in [3]. Theorem 2.4 is due to him.
Theorem 2.4 (Delsarte). Let C be a code with length n. Then,
(C ∩ Fnp )⊥ = tr(C ⊥ ).
(2.2)
This relationship will be the starting point for our construction of subfield-subcodes in
Chapter 3.
Definition 2.5. Let C be a code of length n and S ⊂ {0, ..., n − 1}. The code C S obtained
from C by projecting onto the coordinates given by {0, ..., n − 1} \ S is called the punctured
code (in the coordinates of S).
Definition 2.6. Let C be a code of length n and S ⊂ {0, ..., n − 1}. Let C(S) be the set of
codewords of C which are zero in the coordinates of S. The code
CS = C(S)S
(2.3)
is called the shortened code (in the coordinates of S).
Theorem 2.7. Let C be a code of length n and let S ⊂ {0, ..., n − 1}. Then,
(C ⊥ )S = (C S )⊥ .
(2.4)
In both cases, puncturing and shortening decrease the length of the code by |S|. In
most cases, puncturing does not change the dimension but decreases the redundancy and
shortening decreases the dimension without changing the redundancy. If S = T ∪ V where
T ∩ V = ∅, then CS = (CT )V and C S = (C T )V . Therefore, we can consider the effect of
puncturing or shortening by S with |S| = 1.
Lemma 2.7.1. Let C be an [n, k, d] code and let C i be the punctured code in the ith coordinate.
1. If d > 1, C i is an [n − 1, k, d∗ ] code where d∗ = d − 1 if C has a minimum weight
codeword with a non-zero ith coordinate and d∗ = d otherwise.
2. If d = 1, C i is an [n − 1, k, 1] code if C has no codeword of weight 1 whose non-zero
entry is in coordinate i; otherwise if k > 1, C i is an [n − 1, k − 1, d∗ ] code with d∗ ≥ 1.
2.4 D UAL OF A GRS C ODE
The class of Generalized Reed-Solomon codes has the property that it is self-dual.
That is, for a GRSk (α, v) code, where |α| = n, the dual code is given by GRSn−k (α, u) for
some u ∈ (F∗pm )n . In order to determine the twist vector u, we will need some preliminary
results. Recall that N = pm − 1.
7
Proposition 2.7.1. Let |α| = n and Evα,v be as in Definition 2.1 and let Evα = Evα,1 . Then,
Evα : Fpm [x]/
n−1
Y
(x − αi ) → Fnpm
(2.5)
i=0
is an isomorphism of vector spaces.
Proof. The map Evα : Fpm [x] → Fnpm is defined by
f 7→ (f (α0 ), f (α1 ), ..., f (αn−1 )).
Evα,v is surjective, since any (a0 , a1 , ..., an−1 ) ∈ Fnpm , is the image of the polynomial
n−1
X
i=0
ai
n−1
Y
(x − αj ).
j=0
j6=i
The kernel of this map is the set of polynomials which vanish on αi , 0 ≤ i < n, therefore, the
Qn−1
(x − αi ). So, Evα is an isomorphism by the first
polynomials which are divisible by i=0
homomorphism theorem.
Corollary 2.7.1. Let R = Fpm [x]/hxN − 1i and define the map
Ev : R → FN
pm
(2.6)
by f 7→ (f (1), f (η), f (η 2 ), ..., f (η N −1 )) for η a primitive root in Fpm . Then, Ev is an
isomorphism.
The order of the elements of F∗pm in the evaluation vector is irrelevant here, since any
two orderings differ only by a permutation of the coordinates. This particular choice of
consecutive powers of a primitive element was made so that it agrees with the definition of a
narrow-sense RS code.
The isomorphism in Proposition 2.7.1 is justification for referring to polynomials,
rather than n-tuples of points, as codewords. Therefore, when referring to GRS codes, we may
unambiguously say that f ∈ C to mean that (f (α0 ), f (α1 ), ..., f (αn−1 )) ∈ C. Furthermore, we
can find the inverse of Evα,v which will be useful in characterizing the dual of a GRS code.
Corollary 2.7.2. Given n pairs of points (αi , vi ) ∈ F∗pm × Fpm , where 0 ≤ i ≤ n − 1 and the
αi are pairwise distinct, there is a unique polynomial f ∈ R of degree less than or equal to n
so that f (αi ) = vi .
The polynomial defined in Lemma 2.7.2 is called the Lagrange interpolation of the
points (αi , vi ), 0 ≤ i ≤ n − 1 and is given by
8
n−1
X
Li (x)
f=
vi
L
(α
)
i
i
i=0
where
Li (x) =
(2.7)
n−1
Y
(x − αj ).
j=0
j6=i
Theorem 2.8. Let GRSk (α, v) be as in 2.1. We have
GRSk (α, v)⊥ = GRSn−k (α, u),
where u = (u0 , u1 , ..., un−1 ) and
u−1
i = vi
n−1
Y
(αi − αj ).
(2.8)
j=0
j6=i
A proof of Theorem 2.8 can be found in [6]. A canonical choice of basis for the GRS
code defined in (2.1) is the evaluation of the set of polynomials {1, x, x2 , ..., xk−1 }. Therefore,
a generator matrix has the form

 

Evα,v (1)
v0
v1
. . . vn−1

 

 Evα,v (x)   v0 α0
v1 α1
. . . vn−1 αn−1 
=
.
G=
..
..

 

.
.

 

k−1
k−1
k−1
k−1
Evα,v (x )
v 0 α0
v1 α1
. . . vn−1 αn−1
Theorem 2.8 shows that the family of GRS codes is closed under taking duals and
therefore a parity check matrix for a GRSk (α, v) code is given by


u0
u1
. . . un−1


 u0 α0
u1 α1
. . . un−1 αn−1 

,
H=
..

.


n−k−1
u0 α0n−k−1 u1 α1n−k−1 . . . un−1 αn−1
where ui is given by (2.8).
The self-dual nature of GRS codes also fits well into the framework of Theorem 2.4.
This is summarized in the following diagram.
C = GRSk (α, v) o
C ∩ Fnp = GRSk (α, v) ∩ Fnp o
/
dual
dual
/
C ⊥ = GRSn−k (α, u)
tr
tr(C ⊥ ) = tr(GRSn−k (α, u)).
(2.9)
9
CHAPTER 3
A B OUND FOR THE D IMENSION OF A C LASS OF
GRS C ODES
In this chapter, we introduce cyclotomic polynomials which are used to construct good
subfield-subcodes of toric codes in [5]. These cyclotomic polynomials differ from another
common definition of cyclotomic polynomial used in field theory. We then use Delsarte’s
Theorem to obtain a lower bound for a class of subfield-subcodes of generalized
Reed-Solomon codes whose duals have cyclotomic twist polynomial. Our construction
mimics a technique used in [10], in which we are able to obtain a lower bound for the
dimension of a subfield-subcode by ensuring that the trace of the dual code has a large kernel.
3.1 C YCLOTOMIC P OLYNOMIALS
Let N = pm − 1 and consider the ring ZN . If a, b ∈ ZN , then we will say a is less (or
smaller) than b if a < b when viewed as integers.
Definition 3.1. Let I ⊂ ZN be such that I · p = {a · p : a ∈ I} = I. Then, I is called a
cyclotomic coset. If there exists an element a ∈ I such that every element in I can be
expressed as a · pj for some j, then I is called a minimal cyclotomic coset. If a is the smallest
element of a minimal cyclotomic coset, then we denote by Ia , the minimal cyclotomic coset
with representative element a.
The minimal cyclotomic cosets partition ZN . We will use nb to denote the cardinality
of the set Ib . nb has the property that it divides m and bpnb = b for all b ∈ ZN . We will denote
the set of all smallest elements of the minimal cyclotomic cosets by B.
Proposition 3.1.1. Let R = Fpm [x]/hxN − 1i and define T : R → R by
2
m−1
f 7→ f + f p + f p + ... + f p . Then,
1. For a ∈ Fp , T(af ) = aT(f ),
2. For every f ∈ R, T(f )p = T(f p ),
3. For every f ∈ R, Ev(T(f )) = tr(Ev(f )),
4. Ev(T(f )) = 0 iff T(f ) = 0.
Proof. (1), (2), and (3) follow immediately from the definition of T. (4) follows from the fact
that Ev is an isomorphism from R to Fpm .
Proposition 3.1.2. Let g ∈ R. Then, the following are equivalent,
10
1. g = T(h) for some h ∈ R,
2. g p = g,
3. g evaluates to Fp .
Proof. Let g = T(h) for some h ∈ R. Then,
g p = T(h)p = T(h) = g
from Proposition 3.1.1. Therefore, if α ∈ F∗pm , then g(α)p = g(α) and therefore g(α) ∈ Fp .
Lastly, suppose that for every αi ∈ F∗pm , we have g(αi ) ∈ Fp . Since tr : Fpm → Fp is a
surjective map, there exists βi ∈ Fpm such that tr(βi ) = g(αi ). If we let h be the interpolation
of the points (αi , βi ), then
Ev(T(h)) = tr(Ev(h)) = Ev(g)
and since Ev is an isomorphism, T(h) = g.
A polynomial which satisfies any of the conditions in Proposition 3.1.2 will be called a
cyclotomic polynomial. This definition of cyclotomic differs from another definition used in
field theory. Cyclotomic polynomials have an additional nice property.
Proposition 3.1.3. Suppose that g ∈ R is a cyclotomic polynomial. Then, T(f g) = gT(f ) for
all f ∈ R.
Proof. We have
T(f g) =
=
m−1
X
i=0
m−1
X
i
f p gp
i
i
fp g
i=0
= gT(f ).
Since the minimal cyclotomic cosets partition ZN , any polynomial f ∈ R can be
written as
X
f=
fb
b∈B
with supp(fb ) ⊆ Ib . Furthermore, if supp(fb ) ⊆ Ib , then supp(T(fb )) ⊆ Ib . The following
proposition shows that all cyclotomic polynomials can be generated as the image under the T
map of some set of monomials.
11
P
Proposition 3.1.4. Let f ∈ R and set f = b∈B fb where supp(fb ) ⊆ Ib . Then f is
cyclotomic if and only if for each b ∈ B, fb is cyclotomic. Furthermore, for each fb there
exists αb ∈ Fpm such that
m−1
X
i
b
fb = T(αb x ) =
(αb xb )p .
i=0
P
Proof. Suppose that f is cyclotomic so that f = T(h) for some h ∈ R. Writing h = b∈B hb
P
we have T(h) = b∈B T(hb ). Letting fb = T(hb ) shows that f is the sum of cyclotomic
polynomials. The converse is immediate. Now, consider a cyclotomic polynomial with
support in a minimal cyclotomic coset Ib . Say, fb = T(h) for some h ∈ R. Then,
fb = T(h)
!
X
=T
hb0
b0 ∈B
=
X
T(hb0 ).
b0 ∈B
Since T(hb0 ) has support in Ib0 , then all terms in the sum must equal zero except for the term
T(hb ). Therefore, we can write
fb = T(hb )
=
nX
b −1
i
T(αi xbp )
i=0
and from 3.1.1, we can write this as
=
=
nX
b −1
T(αip
m−i
i=0
m−1
b −1 X nX
xb )
m−i
αip
xb
p j
j=0 i=0
=
m−1
X
j=0
Letting αb =
Pnb −1
i=0
αip
m−i
x
bpj
nX
b −1
i=0
gives
=
m−1
X
j=0
T(αb xb ).
!pj
pm−i
αi
.
12
3.2 S HORTENED AND P UNCTURED GRS C ODES
Shortened and punctured Reed-Solomon codes have found many applications [19].
There are also effective methods for decoding shortened RS codes [1].
Definition 3.2. Let C1 and C2 be two codes of length n. C1 and C2 are monomially equivalent
if there is a permutation π ∈ Sn and a scalar α ∈ F∗pm such that for every c ∈ C2 , there exists a
c0 ∈ C1 so that
c = (c0 , c1 , ..., cn−1 ) = (αc0π(0) , αc0π(1) , ..., αc0π(n−1) ).
If α = 1, then C1 and C2 are permutation equivalent.
In order to specify a particular GRS code, one needs to explicitly state the evaluation
and twist vectors. Corollary 2.7.1 gives us an alternative way of specifying a GRS code in an
equivalent but more compact way. Let C be a GRSk (α, v) code as in Definition 2.1. The
evaluation points αi , 0 ≤ i < n together form a subset of the elements of F∗pm . However,
rather than evaluate on only a subset of F∗pm , we would obtain an equivalent code if we
evaluated at all of the points of F∗pm , and then punctured in the coordinates not corresponding
to any of the αi .The following proposition summarizes this observation.
Proposition 3.2.1. Let S ⊂ {0, ..., N − 1} and T = {0, ..., N − 1} \ S. Let αi = η si for
si ∈ S and η a primitive element in Fpm . Furthermore, define β = (1, η, η 2 , ..., η N −1 ) and
(
vsj i ∈ S
ṽi =
0
i∈T
where sj = i. Then, GRSk (α, v) and GRSk (β, ṽ)T are permutation equivalent.
Since every codeword of GRSk (β, ṽ) has 0 in the coordinates of T , puncturing and
shortening are actually equivalent here. Proposition 3.2.1 shows that any GRS code with
length n < N is a punctured full length GRS code. From Corollary 2.7.1, we can define a
polynomial g by the interpolation of the points (η i , ṽi ), 0 ≤ i < N . Since information about
the evaluation points and the twist vector is embedded in g, we can define a GRS code more
succintly.
Let Zg = {i ∈ {0, ..., N − 1} : g(η i ) = 0} be the set of zeros of g in Fpm , and let Zgc be
the set of non-zeros of g in Fpm .
Definition 3.3. Let g ∈ R. and let |Zgc | = n. For k < n, define Dg by
Dg = {Ev(f g) : deg f < k}.
The Generalized Reed-Solomon code with twist polynomial g will be given by
GRSk hgi = (Dg )Zg .
(3.1)
13
Proposition 3.3.1. Let g ∈ R be as in Definition 3.3. Then, GRSk hgi is permutation
equivalent to GRSk (α, v), where α is an n-tuple of the non-zeros of g in Fpm and vi = g(αi ).
Proof. From Definition 3.3, we have
GRSk hgi = {(f (1)g(1), f (η)g(η), ..., f (η N −2 )g(η N −2 )) : deg f < k}Zg .
Indexing the elements of Zgc so that Zgc = {i1 , ..., in } and ij < ij+1 for j = 1, ..., n − 1, then
= {(f (η i1 )g(η i1 ), ..., f (η in )g(η in )) : deg f < k, ij ∈ Zgc }
= GRSk (β, ṽ)T
by Proposition 3.2.1 with ṽj = g(η ij ), and thus we have
= GRSk (α, v).
Corollary 3.3.1. Let k < N . The code GRSk h1i is a narrow-sense Reed-Solomon code and
GRSk h1i⊥ = GRSn−k hxi.
(3.2)
Corollary 3.3.1 shows how compact this equivalent definition of a GRS code can be.
The properties of cyclotomic polynomials and their evaluations allow us to characterize the
codes GRSk hgi when g is cyclotomic. We first prove the following lemma.
Lemma 3.3.1. Let g and h be cyclotomic polynomials with Zg = Zh . Then, GRSk hgi and
GRSk hhi are monomially equivalent as codes over Fp .
Proof. Let g and h be cyclotomic polynomials with the same zeros in Fpm , and let α1 , ..., αn
be the non-zeros of g. Then there is a vector v ∈ Fnpm such that g(αi )vi = h(αi ) for all
1 ≤ i ≤ n. However, since g and h are cyclotomic, 3.1.2 gives that g(αi ) and h(αi ) are in Fp .
Therefore, vi ∈ Fp and therefore GRSk hgi and GRSk hhi are monomially equivalent as codes
over Fp .
Because of Lemma 3.3.1, we only need to consider cyclotomic polynomials which
evaluate to 1 or 0. If g is a cyclotomic polynomial, we will denote by the polynomial ĝ, the
unique cyclotomic polynomial such that Zg = Zĝ and ĝ(x) = 1 for x ∈ Zgc .
Corollary 3.3.2. Let g be a cyclotomic polynomial and k < |Zgc |. Then, GRSk hĝi is a
punctured GRS code.
14
3.3 T HE D IMENSION OF S UBFIELD -S UBCODES OF
C ERTAIN S HORTENED GRS C ODES
Let C be a code of length n and dimension k defined over Fpm . Let c0 , c1 , ..., c`−1 be a
basis for the subfield-subcode C ∩ Fnp as a vector space over Fp . This set is also linearly
independent over the larger field, Fpm , since otherwise there would be some sequence
P
αi ∈ Fpm , 0 ≤ i < `, such that `−1
i=0 αi ci = 0 and tr(α0 ) 6= 0. Taking the trace of both sides,
P`−1
we would obtain i=0 tr(αi )ci = 0, contradicting our assumption that the ci were linearly
independent over Fp . Therefore, we obtain a trivial upper bound for the dimension of C ∩ Fnp ,
dimFp (C ∩ Fnp ) ≤ dimFpm (C) = k.
(3.3)
If we note that C has dimension m · k as a vector space over Fp , then we also obtain the bound
dimFp (tr(C)) ≤ mk.
(3.4)
From equations 3.4 together with Theorem 2.4, we have
n = dimFp (C ∩ Fnp ) + dimFp (tr(C ⊥ ))
≤ dimFp (C ∩ Fnp ) + m(n − k)
and therefore we have
n − m(n − k) ≤ dimFp (C ∩ Fnp ).
(3.5)
This is a rather impractical lower bound. For values of k such that k < m(1 + 1/m)
the bound is provides a trivial result. With not much extra effort, we can find an exact
expression for the dimension of C ∩ Fnp . We have
m(n − k) = dimFp (tr(C ⊥ )) + dimFp (ker(tr|C ⊥ ))
= n − dimFp (C ∩ Fnp ) + dimFp (ker(tr|C ⊥ )),
and so we obtain
dimFp (C ∩ Fnp ) = n − m(n − k) + dimFp (ker(tr|C ⊥ )).
(3.6)
Equation 3.6 indicates that in order to find a subfield-subcode with large dimension,
we try to maximize the dimension of the kernel restricted to the dual code. This strategy is
used by Roseiro in [10] and Véron in [18] to determine the parameters of very specific classes
of codes.
15
Because the set of codewords of a subfield-subcode is a subset of the set of codewords
of the original code, the minimum distance of a subfield-subcode is automatically at least as
large as the minimum distance of the original code. In the case of GRS codes, or any other
MDS code, with length n and dimension k, we therefore have d∗ ≥ n − k + 1, where d∗ is the
minimum distance of the SFSC. We are not concerned with computing the true minimum
distance in this thesis. Indeed, this bound is already enough to allow us to construct a large
family of best known codes.
For a cyclotomic polynomial, g, the code GRSk hgi is a punctured GRS code. From
Theorem 2.7, the code GRSn−k hgi⊥ = GRSn−k hhi, for some h ∈ R, is a shortened GRShxi
code. Using equation 3.6, we can compute a bound for the dimension of a shortened GRS
code in the following way: If we start in C ⊥ , a full-length RS code, then we can puncture, take
the trace code, and then the dual. Our construction is presented in the following diagram,
where g is such that to find the dimension of the shortened GRShxi code in the coordinates of
S ⊂ {0, ..., N − 1}, we define the polynomial
(
1 i 6∈ S
g=
.
0 i∈S
C = GRSk hxi o
CZg = GRSk hhi o
/ C⊥
dual
dual
/
(3.7)
(C ⊥ )Zg = GRSn−k hgi
CZg ∩ Fnp o
= GRSn−k h1i
dual
/
tr((C ⊥ )Zg )
In the context of GRS codes, Equation 3.6 gives us
dimFp (CZg ∩ Fnp ) = n − m(n − k) + dimFp (ker(tr|(C ⊥ )Zg )),
(3.8)
where n = |Zgc |. In order to obtain a subfield-subcode of a shortened GRShxi code with a large
dimension, we need to find an appropriate g so that the kernel of the trace map restricted to
the punctured GRS code is large. From Proposition 3.1.1, we conclude when g is cyclotomic,
{f ∈ R : deg f < n − k, tr(Ev(f g)) = 0} = {f ∈ R : deg f < n − k, Ev(T(f g)) = 0}
= {f ∈ R : deg f < n − k, T(f g) = 0}
= {f ∈ R : deg f < n − k, gT(f ) = 0}.
(3.9)
Furthermore, we have
|{f ∈ R : deg f < n − k, T(f ) = 0}| ≤ |{f ∈ R : deg f < n − k, gT(f ) = 0}|,
(3.10)
16
so we can obtain a lower bound for 3.6 by computing the dimension of the lower bound in
3.10.
Lemma 3.3.2. Let Fb = {f ∈ R : T(f ) = 0, supp(f ) ⊆ Ib }. Furthermore, let
γ0 , γ1 , ..., γm−nb −1 be a basis for the kernel of trFpm /Fpnb . Then, Fb is a vector space over Fp ,
with basis given by
{gb,t,` : 0 ≤ t < m, 0 < ` < nb } ∪ {γi xb : 0 ≤ i < m − nb },
(3.11)
`
`
where gb,t,` = η t xb − η tp xbp .
Proof. It is clear that | ker T| = (m − 1)N . For each b ∈ B, there are m(nb − 1) functions of
the type gb,t,` and m − nb functions of the form γi xb . Summing over all b ∈ B, we obtain
X
m · (nb − 1) + m − nb =
X
nb (m − 1)
b∈B
b∈B
= (m − 1)
X
nb
b∈B
= (m − 1)N.
Therefore, showing that (3.11) is a linearly independent set means it must be a basis. Fix
b ∈ B and suppose the set (3.11) is not linearly independent. By considerating the
polynomials which include a term with degree bp` for ` > 0, we must have
m−1
X
at gb,t,` =
m−1
X
`
`
at (η t xb − η tp xbp ) = 0
t=0
t=0
`
where at ∈ Fp . Therefore, the coefficient of xbp satisfies
`
`
a0 + a1 η p + ... + am−1 η (m−1)p = 0.
Since η is primitive in Fpm , we must have ai = 0 for 0 ≤ i < m. Since the coefficient of each
term gb,t,` must be 0, we must have
m−n
b −1
X
bi γi xb = 0
i=0
where bi ∈ Fp . However, since the γi are chosen to be linearly independent over Fp , we must
have bi = 0 for 0 ≤ i < m − nb . Therefore, for a fixed b ∈ B, (3.11) is a linearly independent
set over Fp . If b 6= b0 , then the supports of the polynomials in (3.11) will be different and
therefore they must be linearly independent.
17
Now, let F = {f ∈ R : T(f ) = 0}. Any polynomial f can be written uniquely in the
form
f=
X
fb ,
(3.12)
b∈B
where supp(fb ) ⊆ Ib , and therefore F = ⊕b∈B Fb . To find the dimension of the lower bound in
3.10, we intersection with F the set of polynomials of degree smaller than k. This yields the
following lower bound for the dimension of GRSk hxiZg ∩ Fnp .
Theorem 3.4. Let g be a cyclotomic polynomial. Then,
dimFp (GRSk hxiZg ∩ Fnp ) ≥ n − m(n − k) +
X
b∈B∩A
where A = {0, 1, ..., n − k − 1}.
(m(|Ib ∩ A| − 1) + m − nb ),
(3.13)
18
CHAPTER 4
C OMPUTATIONS
In this chapter we run two algorithms in order to show that the class of codes studied
in Ch. 3 contains many good codes. The first algorithm uses Formula (3.13) to compute a
lower bound for the dimension of the subfield-subcode of a GRSk hxi code. While this
algorithm is extremely fast to implement and manages to find a large number of codes which
are at least as good as the best known codes, the algorithm does not provide a proof of the
existence of codes which exceed the best known codes. The second algorithm utilizes the
MAGMA [2] coding language to directly compute the dimension of subfield-subcodes of
GRSk hxi codes using linear algebraic techniques. This algorithm is slower but we are able to
improve on the parameters of the previous best known codes. For each new code found using
the second algorithm, we compare the true dimension of the code with the lower bound
computed in Formula (3.13).
4.1 B EST-K NOWN C ODES O BTAINED FROM
L OWER B OUND
Recall that the lower bound in Theorem 3.4 comes from the observation that if g is
cyclotomic, then
|{f ∈ R : deg f < n − k, T(f ) = 0}| ≤ |{f ∈ R : deg f < n − k, gT(f ) = 0}|.
(4.1)
Denote the latter set by Fg . Algorithm 4.1 describes the procedure used to compute the lower
bound for Fg . The algorithm calculates the lower bound, T , for the dimension of the
subfield-subcode of a GRSk hxi code with length n. It does so by counting the number of
functions from (3.11) which are contained in each cyclotomic coset and dynamically
appending the value of T until all cyclotomic cosets are exhausted. It then compares the
resulting code with the best known code in [9]. It is worth noting that in Algorithms 4.1 and
4.2, we do not attempt to compute the true minimum distance of the subfield-subcode, rather,
we use the obvious bound which is the minimum distance of the original code.
If g has no zeros, then the inequality in (4.1) can be strengthened into equality. In this
case we are computing the true dimension of subfield-subcodes of GRSk hxi codes. Tables B.1
and B.2 are obtained from using Algorithm 4.1. Table B.1 shows list L when the
subfield-subcode is computed from GRSk hxi codes over the parent fields F16 , F32 , F64 , and
F256 . Similarly, Table B.2 shows list L when the subfield-subcode is computed from GRSk hxi
codes over F27 , F81 and F243 . In the case when g has no zeros, we can see that there are many
19
Algorithm 1 Algorithm to Compute The Lower Bound in Formula (3.13)
Require: A finite field Fpm
Require: n, k satisfying 0 ≤ k ≤ n ≤ pm − 1
Ensure: List L with best known codes over Fp
Set T = n − m(n − k)
Compute cyclotomic cosets, C1 , ..., Ct
for i = 1 → t do
Set A = |{c : c ∈ Ci , c < n − k}|
if Ci < n − k then
Set B = m − |Ci |
else
B=0
end if
if A 6= 0 then
T = T + m(A − 1) + B
end if
end for
if [n, T, n − k + 1] is best known with respect to [9] then
Include in L
end if
return L
best-known codes amongst the class of subfield-subcodes of GRSk hxi codes, although the
algorithm finds no new codes.
If g1 , g2 , g3 , ..., gn is a sequence of cyclotomic polynomials such that Zgi ⊆ Zgi+1 for
0 < i < n, then we can observe that
Fg1 ⊆ Fg2 ⊆ Fg3 ⊆ ... ⊆ Fgn .
(4.2)
This indicates that as we increase the amount of shortening in Algorithm 4.1, we can expect
the lower bound to reduce to a strict inequality. Despite this, Algorithm 4.1 still shows that
there are many subfield-subcodes of shortened GRSk hxi codes which tie the best-known
codes. Table B shows the results of Algorithm 4.1 performed on a GRSk hxi code over F256
shortened in t coordinates. In the table, every code listed managed to tie the best-known code.
However, the formula did not provide any new codes.
Remark 4.1. The minimum distance provided in the tables is a lower bound for the true
minimum distance of the subfield-subcode. In general, it is difficult or computationally
20
expensive to compute the true minimum distance of a code, which is why we only use the
obvious bound. The dimension can be computed by linear algebraic techniques rather
efficiently. This is a reason we try to improve upon the dimension in the search for good
codes, rather than the minimum distance.
4.2 T RUE D IMENSION OF S UBFIELD -S UBCODES
OF S HORTENED GRShxi C ODES
Table B indicates that many best-known codes can be found amongst the class of
subfield-subcodes of GRSk hxi codes. None of these codes surpassed the best-known codes,
although Equation 4.2 indicates that it is possible. This section is concerned with computing
the true dimension of SFSCs of GRSk hxi codes. We then compare some of the results with
the results that would have been obtained from using Theorem 3.4.
In order to generate a large number of codes for our search, we use the fact that if Ib is
a minimal cyclotomic coset, then
X
xi
g=
i∈Ib
is a cyclotomic polynomial. We then choose polynomials whose support is equal to one, two,
or three minimal cyclotomic cosets and use these polynomials as our twist polynomials and
use MAGMA to compute the true dimension of these codes. The reason for this choice is that
there are too many possible twist polynomials, so we must narrow our search to a smaller set.
The algorithm is given in 4.2. The source code for Algorithm 4.2 is given in appendix A.2.
The code in it’s current implementation automatically adjusts the number of cyclotomic cosets
used in the search. The output and new codes obtained from these codes is summarized in
tables B - B. The source code for algorithm 4.2 was written by Dr. Fernando Hernando, and
the program was run at the computing center at the Claude Shannon Institute for Discrete
Mathematics in Dublin, Ireland.
P
Now, consider Table B. When n = 192, k = 153, and g = i∈I3 ∪I9 xi , the SFSC of
GRSk hhi has parameters [192, 66, 40], where h is so that GRS153 hhi⊥ = GRS39 hgi. This code
is better than the best known code according to [9], which has parameters [192, 66, 39]. If we
would have used Equation (3.13), we would have obtained a code with parameters
[192, 59, 40]. In this case, we see that the dimension of the code is significantly larger than our
P
bound. Now, if n = 240, k = 189, and g = i∈I15 ∪I45 xi , the SFSC of GRSk hhi has
parameters [240, 76, 52], where GRS189 hhi⊥ = GRS66 hgi. This code is better than the
previous best known code, which has parameters [240, 76, 51]. If we had used (3.13), we
would have obtained a code with parameters [240, 75, 52]. This ties the best known for a code
of length 240 and dimension 75.
21
Algorithm 2 Algorithm to Compute The True Dimension of SFSCs of GRShxi Codes
Require: A finite field Fpm
Require: s, the number of minimal cyclotomic cosets
Ensure: List L with best known codes over Fp
Compute cyclotomic cosets, C1 , ..., Ct
P Pnb −1 bi pj
Fix a set of s cyclotomic cosets, and set g = si=1 j=0
x
Compute the roots of g, {α1 , ..., αN −n }
Set α = [α1 , ..., αN −n ]
Set v = [g(α1 ), ..., g(αN −n )]
for k = 0 → N − n do
Set C = GRSk (α, v)⊥
if [n, Dimension(C), n − k + 1] is best known then
Include it in L
end if
end for
return L
22
CHAPTER 5
C ONCLUSION
In order to emphasize the ring theoretic properties of generalized Reed-Solomon
codes, we proposed an alternative but equivalent definition of a GRS code involving a twist
polynomial. We show that if any cyclotomic polynomial is used as the twist polynomial then
the code amounts to a punctured Reed-Solomon code, the dual of which is a shortened
GRSk hxi code. Using Delsarte’s Theorem, we find a formula for a lower bound for the
dimension of the subfield-subcode of a shortened GRSk hxi code. Using this lower bound, we
are able to compute a large number of codes which tie the best known codes according to [9].
The lower bound ensures that the codes are at least as good as the best known codes with the
same length and minimum distance.To show that the true dimension can often be higher than
our lower bound, we then ran a computer program to calculate the true dimension over the
class of generalized Reed-Solomon codes with twist polynomial having support in one, two,
or three cyclotomic cosets. Rather than calculate the minimum distance of the
subfield-subcode, we use the obvious bound given by the minimum distance of the original
code. Performing this search, we are able to find a number of codes whose dimension exceeds
our lower bound and beats the previously best known codes.
23
BIBLIOGRAPHY
[1] R. B LAHUT, A universal Reed-Solomon decoder, IBM J. Res. Develop., 28 (1984),
pp. 150–158.
[2] W. B OSMA , J. C ANNON , AND C. P LAYOUST, The magma algebra system i: The user
language, Journal of Symbolic Computation, 24 (1997), pp. 235 – 265.
[3] P. D ELSARTE, On subfield-subcodes of modified Reed-Solomon codes, IEEE Trans.
Inform. Theory, 21 (1975), pp. 575–576.
[4] Y. D IANWU AND F. G UANGZENG, The true dimension of certain alternant codes,
Journal of Electronics (China), 17 (2000), pp. 352–356.
[5] H. F ERNANDO, Subfield-subcodes of generalized toric codes, IEICE Trans.
Fundamentals, E80-A No. 5 (1997), pp. 876–880.
[6] J. H ALL, Notes on Coding Theory. Online available at
http://www.math.msu.edu/ jhall/classes/codenotes/GRS.pdf, 2010. Accessed on
2011-08-06.
[7] W. H UFFMAN AND V. P LESS, Fundamentals of Error Correcting Codes, Cambridge
University Press, The Edinburgh Building, Cambridge CB2 2RU, UK, 2003.
[8] F. M AC W ILLIAMS AND N. S LOANE, The Theory of Error-Correcting Codes,
North-Holland, New York, Amsterdam, Netherlands, 1998.
[9] G. M ARKUS, Bounds on the minimum distance of linear codes and quantum codes.
Online available at http://www.codetables.de, 2007. Accessed on 2011-07-27.
[10] A. ROSEIRO , J. H ALL , J. H ADNEY, AND M. S IEGEL, The trace operator and
redundancy of Goppa codes, IEEE Trans. Inform. Theory, 38 (1992), pp. 1130–1133.
[11] T. S HIBUYA , R. M ATSUMOTO , AND K. S AKANIWA, An improved bound for the
dimension of subfield-subcodes, IEICE Trans. Fundamentals, E80-A No. 5 (1997),
pp. 876–880.
[12] H. S TICHTENOTH, On the dimension of subfield subcodes, IEEE Trans. Inform. Theory,
36 (1990), pp. 90–93.
[13]
, Algebraic Function Fields and Codes, vol. 254 of Graduate Texts in Mathematics,
Springer, Verlag Berlin Heidelberg, 2010.
[14] M. T SFASMAN , S. V LADUT, AND T. Z INK, Modular curves, Shimura curves, and
Goppa codes better than Varshamov-Gilbert bound, Mathematische Nachrichten, 109
(1982), pp. 21–28.
[15] M. VAN DER V LUGT, A new upper bound for the dimension of trace codes, The London
Mathematical Society, 23 (1991), pp. 395–400.
24
[16]
, On the dimension of trace codes, IEEE Trans. Inform. Theory, 37 (1991),
pp. 196–199.
[17] J. VAN L INT, Introduction to Coding Theory, vol. 86 of Graduate Texts in Mathematics,
Springer, Verlag Berlin Heidelberg New York, 1999.
[18] P. V ÉRON, Proof of conjectures on the true dimension of some binary Goppa codes,
Designs, Codes, and Cryptography, 36 (2005), pp. 317–325.
[19] S. W ICKER AND V. B HARGAVA, Reed-Solomon Codes and Their Applications, John
Wiley and Sons, 1999.
25
APPENDIX A
ALGORITHMS
26
ALGORITHMS
A.1 S OURCE C ODE FOR A LGORITHM 4.1
// initialize galois field and set t, the amount of shortening
p := 2;
m := 4;
t := 1;
n := p^m - 1 - t;
F<w> := GF(p^m);
for k := 1 to n by 1 do
S := {Integers() | i : i in [0.. #F-2]};
dimension := n - m*(n - k);
for i := 0 to #F - 2 by 1 do
if i in S then
temp := i;
nb := 0;
count := 0;
while temp in S do
if temp lt n-k then
count := count + 1;
end if;
nb := nb + 1;
S := Exclude (S, temp);
temp := temp*p mod (p^m - 1);
end while;
if i lt n-k and count gt 0
dimension := dimension
elif i lt n-k and count le
dimension := dimension
end if;
end if;
then
+ m*(count - 1) + m-nb;
0 then
+ m-nb;
27
end for;
if dimension ge 0 then
C := BKLC (GF(p), n, dimension);
if n - k +
printf
elif n - k
printf
end if;
end if;
end for;
1 gt MinimumWeight(C) then
"%o: **[%o, %o, %o]**\n",k, n, dimension, n - k + 1;
+ 1 eq MinimumWeight(C) then
"%o: [%o, %o, %o]\n",k, n, dimension, n - k + 1;
A.2 S OURCE C ODE
// Compute the cyclotomic cosets over Z_{p^r}
function CyclotomicCosets(p,r)
G := [];
H := [];
F:=Integers();
T:=GF(p,r);
for i := 1 to p^r-1 do
G[i] := (i-1);
end for;
for j := 1 to r do
H[j] := p^(j-1);
end for;
C := ZeroMatrix(F,p^r-1,r);
temp1 :=1;
for k:= p to p^r-1 do
temp := G[k];
if G[k] ne -1 then
for i := 1 to r do
C[temp1,i] := (temp*H[i]) mod (p^r-1);
if G[C[temp1,i]+1] eq -1 then
28
C[temp1,i] := 0;
end if;
G[C[temp1,i]+1]:=-1;
end for;
temp1:=temp1+1;
end if;
end for;
C:=Submatrix(C, 1, 1, temp1, r);
return C;
end function;
// Look for new codes considering g having support in 1 minimal
// cyclotomic coset, or 2 minimal cyclotomic coset, or .....
function SearchCyclo(p,r)
F<a>:=GF(p^r);
P<x>:=PolynomialRing(F);
M:=CyclotomicCosets(p,r);
L:=Subsets({1..Nrows(M)},2);
// here you have to decide how many cyclotomic cosets you choose
#L;
L:=SetToIndexedSet(L);
for k:= 1 to #L do
k;
f:=0*x;
temp:=SetToIndexedSet(L[k]);temp;
for j:=1 to Ncols(M) do
// depending on how many cyclotomic cosets you must lock or
// unlock some lines here
if M[temp[1],j] ne 0 then
f:=f+x^(M[temp[1],j]);
end if;
29
if M[temp[2],j] ne 0 then
f:=f+x^(M[temp[2],j]);
end if;
//if M[temp[3],j] ne 0 then
//f:=f+x^(M[temp[2],j]);
//end if;
end for;
//for i:=1 to Nrows(M) do
//f:=0*x;
//for j:=1 to Ncols(M) do
//if M[i,j] ne 0 then
//f:=f+x^(M[i,j]);
//end if;
//end for;
S:=[];
for v:=1 to (p^r-1) do
if Evaluate(f, a^v) ne 0 then
S:=Append(S,a^v);
end if;
end for;
T:=[];
for ii:=1 to #S do
T[ii]:= Evaluate(f,S[ii]) ;
end for;
for k:=1 to #S-2 do
C:=GRSCode(S,T,k);
C:=Trace(C);
C:=Dual(C);
n:=Length(C);
kk:=Dimension(C);
D:=MinimumWeight(BestKnownLinearCode(GF(p), n, kk));
DD:=BKLCLowerBound(GF(p), n, kk);
30
if D eq DD then
if k+1 gt DD then
Write("CyclotomicRecord5^322",f);
Write("CyclotomicRecord5^322",n);
Write("CyclotomicRecord5^322",kk);
Write("CyclotomicRecord5^322",k+1);
f;
n,kk,k+1;
end if;
if k+1 eq DD then
Write("CyclotomicEqual5^322",f);
Write("CyclotomicEqual5^322",n);
Write("CyclotomicEqual5^322",kk);
Write("CyclotomicEqual5^322",k+1);
end if;
end if;
if D ne DD then
if k+1 ge DD then
Write("CyclotomicRecord5^322",f);
Write("CyclotomicRecord5^322",n);
Write("CyclotomicRecord5^322",kk);
Write("CyclotomicRecord5^322",k+1);
f;
n,kk,k+1;
end if;
end if;
end for;
end for;
end function;
31
APPENDIX B
TABLES
32
TABLES
F16
F32
[15, 0, 15] [31, 0, 31]
[15, 4, 8] [31, 5, 16]
[15, 6, 6] [31, 10, 12]
[15, 10, 4] [31, 15, 8]
[15, 14, 2] [31, 20, 6]
[15, 15, 1] [31, 25, 4]
[31, 31, 1]
F64
F256
[63, 0, 63] [255, 0, 255]
[63, 6, 32] [255, 8, 128]
[63, 15, 24] [255, 12, 120]
[63, 17, 22] [255, 20, 112]
[63, 23, 16] [255, 28, 96]
[63, 29, 14] [255, 36, 92]
[63, 35, 12] [255, 44, 88]
[63, 38, 10] [255, 46, 86]
[63, 44, 8] [255, 78, 56]
[63, 50, 6] [255, 86, 54]
[63, 56, 4] [255, 90, 52]
[63, 62, 2] [255, 98, 48]
[63, 63, 1] [255, 106, 46]
[255, 114, 44]
[255, 106, 46]
[255, 114, 44]
[255, 122, 40]
[255, 130, 38]
[255, 138, 32]
[255, 146, 30]
[255, 154, 28]
[255, 162, 26]
[255, 170, 24]
[255, 178, 22]
[255, 186, 20]
[255, 190, 18]
[255, 198, 16]
[255, 206, 14]
[255, 214, 12]
[255, 222, 10]
[255, 230, 8]
[255, 238, 6]
[255, 246, 4]
[255, 254, 2]
[255, 255, 1]
Table B.1. Best Known SFSCs for GRSk hxi over F2
33
F27
[26, 0, 26]
[26, 3, 18]
[26, 6, 15]
[26, 7, 14]
[26, 13, 8]
[26, 16, 6]
[26, 19, 5]
[26, 22, 3]
[26, 25, 2]
[26, 26, 1]
F81
[80, 0, 80]
[80, 4, 54]
[80, 6, 52]
[80, 10, 45]
[80, 14, 42]
[80, 15, 41]
[80, 45, 15]
[80, 49, 14]
[80, 53, 12]
[80, 55, 11]
[80, 59, 9]
[80, 63, 8]
[80, 67, 6]
[80, 71, 5]
[80, 75, 3]
[80, 79, 2]
[80, 80, 1]
F243
[242, 0, 242]
[242, 5, 162]
[242, 10, 153]
[242, 20, 132]
[242, 25, 126]
[242, 30, 123]
[242, 31, 122]
[242, 116, 44]
[242, 121, 42]
[242, 126, 41]
[242, 131, 39]
[242, 136, 36]
[242, 141, 35]
[242, 146, 33]
[242, 151, 32]
[242, 156, 27]
[242, 161, 26]
[242, 166, 24]
[242, 171, 23]
[242, 176, 21]
[242, 181, 20]
[242, 186, 18]
[242, 191, 17]
[242, 196, 15]
[242, 201, 14]
[242, 206, 12]
[242, 211, 11]
[242, 216, 9]
[242, 221, 8]
[242, 216, 9]
[242, 221, 8]
[242, 226, 6]
[242, 231, 5]
[242, 236, 3]
[242, 241, 2]
[242, 242, 1]
Table B.2. Best Known SFSCs for
GRSk hxi over F3
34
t=1
[254, 7, 128]
[254, 11, 120]
[254, 19, 112]
[254, 27, 96]
[254, 35, 92]
[254, 43, 88]
[254, 45, 86]
[254, 77, 56]
[254, 85, 54]
[254, 89, 52]
[254, 97, 48]
[254, 105, 46]
[254, 113, 44]
[254, 121, 40]
[254, 129, 38]
[254, 137, 32]
[254, 145, 30]
[254, 153, 28]
[254, 161, 26]
[254, 169, 24]
[254, 177, 22]
[254, 185, 20]
[254, 189, 18]
[254, 197, 16]
[254, 205, 14]
[254, 213, 12]
[254, 221, 10]
[254, 229, 8]
[254, 237, 6]
[254, 245, 4]
[254, 253, 2]
[254, 254, 1]
t=5
[250, 15, 112]
[250, 31, 92]
[250, 39, 88]
[250, 41, 86]
[250, 73, 56]
[250, 81, 54]
[250, 85, 52]
[250, 93, 48]
[250, 101, 46]
[250, 109, 44]
[250, 117, 40]
[250, 125, 38]
[250, 133, 32]
[250, 141, 30]
[250, 157, 26]
[250, 165, 24]
[250, 173, 22]
[250, 181, 20]
[250, 185, 18]
[250, 193, 16]
[250, 201, 14]
[250, 209, 12]
[250, 225, 8]
[250, 233, 6]
[250, 241, 4]
[250, 249, 2]
[250, 250, 1]
t = 10
[245, 34, 88]
[245, 36, 86]
[245, 68, 56]
[245, 76, 54]
[245, 80, 52]
[245, 88, 48]
[245, 96, 46]
[245, 104, 44]
[245, 112, 40]
[245, 120, 38]
[245, 128, 32]
[245, 136, 30]
[245, 144, 28]
[245, 152, 26]
[245, 160, 24]
[245, 168, 22]
[245, 176, 20]
[245, 180, 18]
[245, 188, 16]
[245, 196, 14]
[245, 204, 12]
[245, 212, 10]
[245, 220, 8]
[245, 228, 6]
[245, 236, 4]
[245, 244, 2]
[245, 245, 1]
t = 20
[235, 24, 88]
[235, 66, 54]
[235, 70, 52]
[235, 78, 48]
[235, 86, 46]
[235, 94, 44]
[235, 102, 40]
[235, 110, 38]
[235, 118, 32]
[235, 126, 30]
[235, 134, 28]
[235, 142, 26]
[235, 150, 24]
[235, 158, 22]
[235, 166, 20]
[235, 170, 18]
[235, 178, 16]
[235, 186, 14]
[235, 194, 12]
[235, 202, 10]
[235, 210, 8]
[235, 218, 6]
[235, 226, 4]
[235, 234, 2]
[235, 235, 1]
Table B.3. Best Known Codes Shortened from the F256 code
GRSk hxi, Shortened in t Coordinates.
g
x192 + x144 + x132 + x129 + x96 + x72 + x66 + x48 + x36
+x33 + x24 + x18 + x12 + x9 + x6 + x3
C2 = [240, 76, 52]
x240 + x225 + x210 + x195 + x180 + x165 + x150
+x135 + x120 + x105 + x90 + x75 + x60 + x45 + x30 + x15
Best Known
New codes
[192, 66, 39] C1 = [192, 66, 40]
[240, 76, 51]
Table B.4. New Codes over F2 From F256 .
35
Best Known
[191, 66, 38]
[191, 65, 39]
[190, 65, 38]
[239, 76, 50]
[238, 76, 49]
[237, 76, 48]
[239, 75, 51]
[238, 74, 51]
[237, 73, 51]
[238, 75, 50]
[237, 74, 50]
[236, 73, 50]
[237, 75, 49]
[236, 74, 49]
[235, 73, 49]
[236, 75, 48]
[235, 74, 48]
[234, 73, 48]
labeltable5
New codes
Operation
C3 = [191, 66, 39]
PunctureCode(C1 , 192)
C4 = [191, 65, 40]
ShortenCode(C1 , 192)
C5 = [190, 65, 39]
ShortenCode(C3 , 191)
C6 = [239, 76, 51]
PunctureCode(C2 , 240)
C7 = [238, 76, 50]
PunctureCode(C2 , {240, 239})
C8 = [237, 76, 49] PunctureCode(C2 , {240, 239, 238})
C9 = [239, 75, 52]
ShortenCode(C2 , 240)
C10 = [238, 74, 52]
ShortenCode(C2 {240, 239})
C11 = [237, 73, 52] ShortenCode(C2 , {240, 239, 238})
C12 = [238, 75, 51]
ShortenCode(C6 , 239)
C13 = [237, 74, 51]
ShortenCode(C6 {239, 238})
C14 = [236, 73, 51] ShortenCode(C6 , {239, 238, 237})
C14 = [237, 75, 50]
ShortenCode(C7 , 238)
C15 = [236, 74, 50]
ShortenCode(C7 {238, 237})
C16 = [235, 73, 50] ShortenCode(C7 , {238, 237, 236})
C17 = [236, 75, 49]
ShortenCode(C8 , 237)
C18 = [235, 74, 49]
ShortenCode(C8 {237, 236})
C19 = [234, 73, 49] ShortenCode(C8 , {237, 236, 235})
Table B.5. New Codes over F2 Obtained from C1 and C2
Best Known
[162, 92, 23]
[162, 97, 21]
[162, 102, 19]
[162, 107, 17]
[162, 117, 14]
[161, 91, 23]
[161, 96, 21]
[161, 101, 19]
[161, 106, 17]
[161, 116, 14]
[171, 101, 23]
[171, 81, 32]
[170, 100, 23]
[170, 80, 32]
New codes
g
C20 = [162, 92, 23]
x81 + x27 + x9 + x3 + x
C21 = [162, 97, 21]
x81 + x27 + x9 + x3 + x
C22 = [162, 102, 20]
x81 + x27 + x9 + x3 + x
C23 = [162, 107, 18]
x81 + x27 + x9 + x3 + x
C24 = [162, 117, 15]
x81 + x27 + x9 + x3 + x
C25 = [161, 91, 23]
x202 + x148 + x130 + x124 + x122 + x121
C26 = [161, 96, 21]
x202 + x148 + x130 + x124 + x122 + x121
C27 = [161, 101, 20]
x202 + x148 + x130 + x124 + x122 + x121
C28 = [161, 106, 18]
x202 + x148 + x130 + x124 + x122 + x121
C29 = [161, 116, 15]
x202 + x148 + x130 + x124 + x122 + x121
C30 = [171, 101, 23] x162 + x81 + x54 + x27 + x18 + x9 + x6 + x3 + x2 + x
C31 = [171, 81, 32] x162 + x81 + x54 + x27 + x18 + x9 + x6 + x3 + x2 + x
C32 = [170, 100, 23]
x175 + x139 + x127 + x123 + x121 + x41
C33 = [170, 80, 32]
x175 + x139 + x127 + x123 + x121 + x41
Table B.6. New Codes over F3 from F243
36
Best Known
[160, 95, 21]
[159, 94, 21]
[158, 93, 21]
[160, 100, 19]
[159, 99, 19]
[161, 102, 19]
[160, 101, 19]
[159, 100, 19]
[158, 99, 19]
[160, 105, 17]
[159, 104, 17]
..
.
New codes
operation
C34 = [160, 95, 21]
ShortenCode(C26 , 161)
C35 = [159, 94, 21]
ShortenCode(C26 , {161, 160})
C36 = [158, 93, 21] ShortenCode(C26 , {161, 160, 159})
C37 = [160, 100, 20]
ShortenCode(C27 , 161)
C38 = [159, 99, 20]
ShortenCode(C27 , {161, 160})
C39 = [161, 102, 19]
PunctureCode(C27 , 162)
C40 = [160, 101, 19]
PunctureCode(C18 , {161})
C41 = [159, 100, 19]
ShortenCode(C40 , 160)
C42 = [158, 99, 19]
ShortenCode(C40 , {159})
C43 = [160, 105, 18]
ShortenCode(C28 , 161)
C44 = [159, 104, 18]
ShortenCode(C28 , {161, 160})
..
..
.
.
[134, 180, 18] C68 = [135, 180, 18] ShortenCode(C28 , {161, . . . , 136})
[160, 115, 14] C69 = [160, 115, 15]
ShortenCode(C29 , 161)
..
..
..
.
.
.
[148, 103, 14] C80 = [148, 103, 15] ShortenCode(C29 , {161, . . . , 149})
[169, 99, 23] C81 = [169, 99, 23]
ShortenCode(C32 , {170})
..
..
..
.
.
.
[161, 91, 23]
[169, 79, 32]
[168, 78, 32]
[167, 77, 32]
C89
C90
C91
C92
= [161, 91, 23]
= [169, 79, 32]
= [168, 78, 32]
= [167, 77, 32]
ShortenCode(C32 , {170, . . . , 162})
ShortenCode(C33 , {170})
ShortenCode(C33 , {170, 169})
ShortenCode(C33 , {170, 169, 168})
Table B.7. New Codes over F3 Obtained C20 , . . . , C33 .
Best Known
New codes
g
25
[100, 33, 35] C93 = [100, 33, 35]
x + x5 + x
[100, 36, 33] C94 = [100, 36, 34]
x25 + x5 + x
[99, 35, 33]
C95 = [99, 35, 34] x56 + x36 + x32 + x31
Table B.8. New Codes over F5 from F125 .
Best Known
New codes
Operation
[98, 34, 33] C96 = [98, 34, 34]
ShortenCode(C95 , {99})
[97, 33, 33] C97 = [97, 33, 34]
ShortenCode(C95 , {99, 98})
[96, 32, 34] C98 = [96, 32, 34] ShortenCode(C95 , {99, 98, 97})
Table B.9. New Codes over F5 Obtained C95 .