**1. Introduction**

Function fields are used ubiquitously in algebraic coding theory for their flexibility in constructions and have produced excellent linear codes. Suitable families of function fields, for example good towers of function fields, have been used to construct families of codes with parameters bound better than the asymptotic bound.

Let *q* a power of a prime number *p*. It is well known, that there exists exactly one finite field with *q* elements which is isomorphic to the splitting field of the polynomial *xq* � *<sup>x</sup>* over the prime field *p*. Any other field *<sup>F</sup>* of characteristic *<sup>p</sup>* contains a copy of *p*. We denote respectively by *<sup>n</sup> <sup>q</sup>* and *<sup>n</sup> <sup>q</sup>* the affine space and the projective space over *q*. Let *q*½ � *x*1, *x*2, … , *xn* be the algebra of polynomials in *n* variables over *q*.

The encoding of an information word into a *k*-dimensional subspace is usually known as coding for errors and erasures in random network coding [1]. Namely, let *V* be an *N*�dimensional vector space over *q*, a code for an operator channel with ambient space *V* is simply a non-empty collection of subspaces of *V*. The collection of subspaces is a code for error correcting errors that happen to send data through an operator channel. The matrix coding the information is parameterised by random variables *a*1, *a*2, … , *an* which constitute the letters of an alphabet. Here the operator channel is an abstraction of the operator encountered in random linear network coding, when neither transmitter nor receiver has knowledge of the channel transfer characteristics. The input and output alphabet for an operator channel is the projective geometry. A good code is capable of correcting error and erasures at the output of the operator channel. Thus in order to construct good codes one need to choose a metric consistent with channel errors and search of a set of vectors with given metric properties as a correcting code. The codes considered here are codes for channels whose errors are consistent with the weighted Hamming metric (WHM).

Recall that *qn* ∣*<sup>q</sup>* is a cyclic Galois extension and it is finitely generated by unique element *<sup>α</sup>* <sup>∈</sup>*qn* <sup>n</sup>*q*. *<sup>α</sup>* is a primitive element and 1, *<sup>α</sup>*, *<sup>α</sup>*2, … , *<sup>α</sup>n*�<sup>1</sup> � � is a basis

Another important family of Goppa codes is obtained considering the normal

<sup>C</sup>*<sup>n</sup>* <sup>≔</sup> *<sup>q</sup>* 1, *<sup>α</sup>*, … , *<sup>α</sup><sup>n</sup>* ð Þ : *<sup>α</sup>* <sup>∈</sup>*<sup>q</sup>* ∪ ∞f g � �*:*

Assuming that ð Þ¼ *<sup>n</sup>*, *<sup>p</sup>* 1 are coprime, the set 1, *<sup>α</sup>*, *<sup>α</sup>*2, … , *<sup>α</sup>n*�<sup>1</sup> � � forms a basis of *qn* over *q*, where *p* is the characteristic of the field. Thus points in the NRC are in correspondence with *q*�linear combinations of the base vectors up to collineation. The Goppa codes of dimension *<sup>n</sup>* defined over <sup>C</sup>*<sup>n</sup>* are constructed by evaluating nonzero polynomials of degree less than *n* over a sequence *α*1, … , *α<sup>n</sup>* of *n* distinct

is injective, since the existence of a non-zero polynomial of degree less than *k* vanishing on all *α<sup>i</sup>* implies *n*<*k* by the fundamental theorem of algebra (a non-zero polynomial of degree *r* with coefficients in a field can have at most *r* roots). These are just Reed-Solomon codes of parameters ½ � *n*, *k*, *d* over a finite field *q*, with parity

*<sup>α</sup><sup>k</sup>*þ<sup>1</sup> <sup>¼</sup> *<sup>α</sup>* <sup>þ</sup> 1. Any codeword ð Þ *<sup>c</sup>*0,*c*1, … ,*cn*�<sup>1</sup> can be expanded into a *<sup>q</sup>*-ary *<sup>k</sup>* vector with respect to the basis 1, *α*, … , *α<sup>k</sup>*�<sup>1</sup> � �. Construction of generalised Reed-Solomon codes over *<sup>q</sup>* only employ elements of *q*, hence their lengths are at most *q* þ 1. In order to get longer codes, one can make use of elements of an extension of *q*, for instance considering subfield subcodes of Reed-Solomon codes. In this way, one gets cyclic codes. Recall that a linear cyclic code is an ideal in the ring *q*½ � *<sup>x</sup> <sup>=</sup> <sup>x</sup>*ð Þ *<sup>n</sup>* � <sup>1</sup>

*<sup>n</sup>*∣*ql* � 1, ([4]). We shall identify the code with the set of its codewords. A natural question then to ask is how many irreducible polynomials of degree at least 2 are there over the algebraic closure of *q*½ � *x* . Next theorem expresses this number in

**Theorem 2.2**. *Assume that q*ð Þ¼ , *n* 1*, then the number of polynomials of degree* ð Þ *n*≥2 *decomposable into distinct linear factors over a finite field <sup>q</sup> of arbitrary*

*of the first kind (the number of ways to partition a set of n objects into k non-empty subsets), divided by the order of the affine transformation group of the affine line* <sup>1</sup> <sup>¼</sup>

*Proof.* We need to count all the polynomials *f <sup>n</sup>*ð Þ *x* in one variable of degree *n* fixed. We assume that our polynomial *f <sup>n</sup>*ð Þ *x* decomposes into linear factors, otherwise we work over *q*½ � *x* , where *<sup>q</sup>* denotes the algebraic closure of the finite field *q*. Since the number of ordered sequences on *q* symbols is *q*! and each root is counted with its multiplicity, it follows that the number of monic polynomials with *n* � 1

In the sequel, an ½ � *n*, *k <sup>q</sup>*-code *C* is a *k*-dimensional subspace of *<sup>q</sup>*

� �*<sup>n</sup>* .

> � �*<sup>n</sup> :*

*<sup>q</sup>*, *f* ↦ ð Þ *f*ð Þ *α*1, … , *α<sup>n</sup>* (1)

*<sup>q</sup>* of *xn* � 1, where

*<sup>k</sup>*¼<sup>1</sup>ð Þ*<sup>q</sup> <sup>k</sup>, where q*ð Þ*<sup>k</sup> is the falling factorial*

*<sup>k</sup>*¼<sup>0</sup>*s n*ð Þ , *<sup>k</sup> <sup>q</sup>k, where s n*ð Þ , *<sup>k</sup> is the Stirling number*

*<sup>i</sup>*¼<sup>1</sup> *<sup>x</sup>* � *<sup>α</sup><sup>i</sup>* � �, where *<sup>α</sup>* is a primitive root of *<sup>q</sup>* such that

of the field extension *<sup>q</sup>* ↪ *q*ð Þ *α* , that is, *qn* ffi *<sup>q</sup>*

**2.1 Generalised Reed-Solomon codes as cyclic codes**

<sup>ϵ</sup> : *q*½ �!*<sup>x</sup> <sup>n</sup>*

generated by a polynomial *g x*ð Þ with roots in the splitting field *<sup>l</sup>*

rational curve (NRC) <sup>C</sup>*<sup>n</sup>* defined over *q*:

*A Geometrical Realisation of Quasi-Cyclic Codes DOI: http://dx.doi.org/10.5772/intechopen.88288*

elements in *q*, if *k*≤ *n*, then the map

check polynomial *h x*ð Þ¼ <sup>Q</sup>*<sup>q</sup>*

terms of Stirling numbers.

<sup>n</sup>∞*, that is q*<sup>2</sup> � *q.*

1

**261**

*characteristic a prime number p, is equal to* P*<sup>n</sup>*

*polynomial q* � ð Þ *<sup>q</sup>* � <sup>1</sup> … ð Þ¼ *<sup>q</sup>* � *<sup>k</sup>* <sup>P</sup>*<sup>n</sup>*

Let C be a non-singular, projective, irreducible curve defined over *q*, as the vanishing locus of a polynomial *F* ∈*q*½ � *x*0, *x*1, *x*<sup>2</sup> . We define the number *N q*ð Þ of *q*�rational points on the curve to be

$$N(q) = |\{(\mathbf{x}\_0, \mathbf{x}\_1, \mathbf{x}\_2) \in \mathbb{P}^2(\mathbb{F}\_q) | F(\mathbf{x}\_0, \mathbf{x}\_1, \mathbf{x}\_2) = \mathbf{0} \}|.$$

It is a polynomial in *q* with integer coefficients, whenever *q* is a prime power.

The number of points C *qr* � � on <sup>C</sup> over the extensions *qr* of *<sup>q</sup>* is encoded in an exponential generating series, called the zeta function of C:

$$Z(\mathcal{C}, t) = \exp\left(\sum\_{r=1}^{\infty} \#\overline{\mathcal{C}}(\mathbb{F}\_{q^r})\frac{t^r}{r}\right).$$

Garcia and Stichtenoth analysed the asymptotic behaviour of the number of rational places and the genus in towers of function fields, [2]. From Garcia-Stichtenoth's second tower one obtains codes over any field *<sup>q</sup>* where *q* is an even power of a prime [3].

One of the main problems in coding theory is to obtain non-trivial lower bounds of the number *N F*ð Þ*<sup>i</sup>* of rational places of towers of function fields *Fi=<sup>q</sup>* � �<sup>∞</sup> *<sup>i</sup>*¼<sup>1</sup> such that *Fi* ⊊ *Fi*þ1. Suitable families of function fields, for example good towers of function fields, have been used to construct families of codes that beat the Gilbert-Varshamov bound. This paper aims to explore this link for the study and construction of quasi-cyclic codes. For example good codes are obtained for curves of genus 0, they are in fact extended generalised Reed-Solomon codes.

**Notation.** Let *<sup>q</sup>* denote the Galois field of *q* elements and let *<sup>q</sup>* � �*<sup>n</sup>* denote the vector spaces of all ordered *n*-tuples over *q*. The Hamming weight of a vector *x*, denoted by *wt x*ð Þ is then number of non-zero entries in *x*. A linear code *C* of length *n* and dimension *k* over *<sup>q</sup>* is a *k*-dimensional subspace of *<sup>q</sup>* � �*<sup>n</sup>* . Such a code is called ½ � *n*, *k*, *d <sup>q</sup>* code if its minimum Hamming distance is *d*. For *d* a positive integer, *α* ¼ ð Þ *α*1, … , *α<sup>m</sup>* is a partition of *d* into *m* parts if the *α<sup>i</sup>* are positive and decreasing.
