A Geometrical Realisation of Quasi-Cyclic Codes

We study and enumerate cyclic codes which include generalised Reed-Solomon codes as function field codes. This geometrical approach allows to construct longer codes and to get more information on the parameters defining the codes. We provide a closed formula in terms of Stirling numbers for the number of irreducible polynomials and we relate it with other formulas existing in the literature. Further, we study quasi-cyclic codes as orbit codes in the Grassmannian parameterizing constant dimension codes. In addition, we review Horn ’ s algorithm and apply it to construct classical codes by their defining ideals.


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 x q À x over the prime field  p . Any other field F of characteristic p contains a copy of  p . We denote respectively by  n  q À Á and  n  q À Á the affine space and the projective space over  q . Let  q x 1 , x 2 , … , x n ½ 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 , … , a n 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).
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 2 ½ . We define the number N q ð Þ of  q Àrational points on the curve to be It is a polynomial in q with integer coefficients, whenever q is a prime power. The number of points C  q r À Á on C over the extensions  q r of  q is encoded in an exponential generating series, called the zeta function of C: 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  q 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 i ð Þ of rational places of towers of function fields 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  q denote the Galois field of q elements and let  q À Á n 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  q is a k-dimensional subspace of  q À Á n . Such a code is called n, k, d ½ q code if its minimum Hamming distance is d. For d a positive integer, α ¼ α 1 , … , α m ð Þis a partition of d into m parts if the α i are positive and decreasing.

Algebraic geometric codes
Let  q be a finite field of q elements, where q is a power of a prime. We consider as an alphabet a set P ¼ P 1 , … , P N f gof N À  q rational points lying on a smooth projective curve C of genus g and degree d defined over the field  q . If D is a divisor on the curve C, L D ð Þ is the linear series attached to this divisor with coefficients in the field. Definition 2.1. Algebraic Geometric Codes (AGC) are constructed by evaluation of the global sections of a line bundle or a vector bundle on the curve C over N N > g ð Þ distinct rational places P 1 , … , P N . Namely, let F| q be the function field of the curve, D the divisor P 1 þ ⋯ þ P N and G a divisor of F| q of degree s ≤ N such that Supp G ∩ Supp D ¼ ø. Then the geometric Goppa code associated with the divisors D and G is defined by Recall that  q n | q is a cyclic Galois extension and it is finitely generated by unique element α ∈  q n n q . α is a primitive element and 1, α, α 2 , … , α nÀ1 È É is a basis of the field extension  q ↪  q α ð Þ, that is,  q n ffi  q À Á n .
In the sequel, an n, k ½ q -code C is a k-dimensional subspace of  q À Á n :

Generalised Reed-Solomon codes as cyclic codes
Another important family of Goppa codes is obtained considering the normal rational curve (NRC) C n defined over  q : Assuming that n, p ð Þ ¼ 1 are coprime, the set 1, α, α 2 , … , α nÀ1 È É forms a basis of  q n 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 n defined over C n are constructed by evaluating nonzero polynomials of degree less than n over a sequence α 1 , … , α n of n distinct elements in  q , if k ≤ n, then the map is injective, since the existence of a non-zero polynomial of degree less than k vanishing on all α i 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 ð Þ can be expanded into a q-ary k vector with respect to the basis 1, α, … , α kÀ1 È É . Construction of generalised Reed-Solomon codes over  q 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 x ½ = x n À 1 ð Þ generated by a polynomial g x ð Þ with roots in the splitting field  l q of x n À 1, where n| q l À 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 terms of Stirling numbers. 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  q of arbitrary characteristic a prime number p, is equal to Þ is the Stirling number 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 Proof. We need to count all the polynomials f n x ð Þ in one variable of degree n fixed. We assume that our polynomial f n x ð Þ decomposes into linear factors, otherwise we work over  q x ½ , where  q 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 different roots is q q À 1 ð Þ q À 2 ð Þ… q À n þ 1 ð Þ≔ q À 2 ð Þ n . Now we observe that polynomials are invariant by the action of automorphisms of the affine line, so we must divide this number by the order of this group which is q 2 À q. □ Theorem 2.3. Given a set of integers 0, 1, … , n À 1 f g module n, there is a set J of k integers which is a set of roots, that is, there is a polynomial h for some prime number p and m is the least integer such that Þis a cyclic linear code of parameters n, k, n À k þ 1 ð Þ . Proof. Let m be the least integer such that n divides p m À 1, then g:c:d m, p ð Þ ¼1. We define an equivalence relation on the set of integers 0, 1, … , n À 1 f g , by declaring two integers i and j in the range 0 ≤ i ≤ n À 1 to be conjugate module n if p s i j mod n ð Þ. This equivalence relation partition the set into cyclotomic cosets. The cyclotomic coset containing j, which we will denote by Ω j , can be described explicitly as the set j, pj, … , p kÀ1 j È É , where k is the least positive integer such that p k j j mod n ð Þand j is not necessarily the smallest integer in such coset. Denote by I n the set consisting of the smallest integers in each cyclotomic coset, then I n is a set root, that is, it is a set of k integers in arithmetic progression modulo n whose increment is relatively prime to n. Let d ¼ n À k þ 1, then the polynomial Q i ∈ I n x À α i À Á defines a cyclic code of parameters n, k, d ð Þ. □ As an application of Theorem 2.2, given an integer n, we can count the number of cyclic codes of parameters n, k ½ for each 0 ≤ k ≤ n and set of roots α 1 , … , α k in the splitting field of x n À 1, the corresponding polynomial g Þgenerates a linear cyclic code in the ring  q x ½ = x n À 1 ð Þ. Thus for each 0 ≤ k ≤ n there are exactly q ð Þ k = q 2 À q ð Þcyclic codes. In the theory of error-correcting codes to a given code C ⊂  n q , one assigns another important parameter, the minimum distance d which measures how good the decoding is.
Definition 2.4. The distance between vectors a ¼ a 1 , a 2 , … , a n ð Þin the Weighted Hamming metric (WHM) is defined by a function: The value w i and vector w ¼ w 1 , w 2 , … , w n ð Þ are called a weight of position i and a vector of weights of positions respectively.
Geometrically a binary vector a 1 , … , a n ð Þof length n gives the coordinates of a vertex of a unit cube in n dimensions. Example 1. Consider the Goppa code defined by the rational function g x ð Þ ¼ 3x 2 À5xþ5 which admits as decomposition into partial fractions the expression G x ð Þ ≔ 5 The presence of a double factor x À 1 ð Þ 2 corresponds to the existence of an eigenspace E in the vector space  n q of multiplicity 2 and thus an αÀsplitting subspace where the operator α is just the linear operator A À λI, with λ the eigenvalue associated to E and A is the generator matrix of the code. We recall that an rÀdimensional W subspace is αÀsplitting if α i W ¼ W is invariant under the action of any element α i in the Galois group of the extension  q ↣  q α ð Þ.

Algebraic function field codes
A much greater variety of linear codes is obtained if one uses places of arbitrary degree rather than just places of degree 1. These codes are more naturally described through function field codes. A general viewpoint is that function field codes are certain finite dimensional linear subspaces of an algebraic function field over a finite field as in Goppa's construction.
In the paper [5], the authors introduce another construction where places of arbitrary degree are allowed. The method consists of choosing two divisors G 1 and G 2 of an algebraic curve over  q with G 1 ≤ G 2 . Then L G 1 ð Þ is a subspace of the vector space L G 2 ð Þ over  q . If we choose a basis of L G 2 ð Þ, then the coordinate vectors of the elements of L G 1 ð Þ form a linear code over Þ. These are known as function field codes and they provide a general perspective on the construction of algebraic-geometry codes [6].
Example 2. We consider as in [7] the Suzuki curve χ defined over  q by the following equation y q À y ¼ x q 0 x q À x ð Þwith q ¼ 2q 2 0 ≥ 8 and q 0 ¼ 2 r . This curve has exactly q 2 þ 1Àrational places with a single place at infinity P ∞ and it is of genus g S ¼ q 0 q À 1 ð Þ: We construct a code out of the divisor F ¼ mP ∞ and Q where Q ¼ P 1 þ … þ P q 2 is the sum of the q 2 Àrational points and the parameter m satisfies the bound m > 2g À 2 and g is the genus of the curve.
Observe that the geometric Goppa code C F, Q ð Þis an  q -subspace of  q À Á q 2 and its dimension k as an  q Àvector space is the dimension of the code. Geometrically, it corresponds to a point in the Grassmannian G q 2 ,k  q À Á . The set of codewords recognised by the code C F, Q ð Þadmits the following description in terms of monomial ideals in the variables x, y, z, w: where z ¼ x 2q 0 þ1 and w ¼ xy 2q 0 À z 2q 0 are elements in the function field F χ ≔  q x, y ð Þ over  q . Moreover, it is a generating set for the linear series L dP ∞ ð Þ associated to the divisor dP ∞ . Theorem 2.5. Cyclic codes are function field codes constructed over the curve C n,m with affine equation y m þ x n ¼ 1 defined over a finite field  q of q elements, where q is a power of a prime p and n, m are integer numbers greater or equal than 2.
Proof. Let us assume n is an integer even number, thus n ¼ 2 k Á s, with s an integer odd number. We recall that a linear cyclic code is an ideal in the ring  q x ½ = x n À 1 ð Þgenerated by a polynomial g x ð Þ with roots in the splitting field  l q of x n À 1, where n|q l À 1. If we consider the factorisation of the polynomial x n À 1 over . We see that the The cyclic code is realised as the algebraic geometric code associated to the divisors D ¼ P 0 þ P 1 þ … þ P k , G ¼ μ P ∞ and the parameter μ satisfies the bound μ > 2g À 2, where g is the genus of the curve C n,m . Note that m is the least integer such that n| p m À 1. In particular α is a generator of  p À Á m . If n is an integer odd number, by Theorem 2.3, we know there is a set of roots α j È É j ∈ J , such that α is a generator of  p m À Á . Now we consider the points P j ¼ α j , 0 À Á with j ∈ J and the point P at P ∞ ¼ 0, α ð Þ ¼ ∞, and the cyclic code is realised as the function field code associated to the divisors D ¼ P j ∈ J P j and μP ∞ . □ Remark 2.6. The proof given in theorem gives a realisation of cyclic codes as AG codes constructed over the curve with affine model y m þ x n ¼ 1. In particular when m ¼ n ¼ q þ 1, we cover the codes defined over the Hermitian curve.
Another important family of cyclic codes is obtained considering the roots of the polynomial x n À 1 over its splitting field. These codes are of great importance in ADN-computing and as they are linear codes, they can be described as function fields. Let α be a primitive element of the underlying vector space over  q . Since the base field is of characteristic p, x n À 1 has n different zeroes. Let  q x ½ be the extension field containing the n th roots of unity 1, α, constitutes a basis over the prime field  p , and the field extensions Þare isomorphic, and the roots w, w þ 1 correspond to one place of degree 2 in the extension field  p w ð Þ. Example 4. We define the polynomials f x ð Þ ¼ x n þ a 1 x nÀ1 þ ⋯ þ a n , with a i ∈ , and f x, Then, if f is a separable polynomial, then the Galois group of f x, t ð Þ over  t ð Þ is a regular extension with Galois group S n . Observe that  x 1 … , x n ð Þis the function field of an n À 1 ð ÞÀdimensional projective space  nÀ1  ð Þ over . Suppose that z 1 , … , z n are the roots of f in a splitting field of f over . Each coefficient a i of x i in f is symmetric in z 1 , … , z n , thus by the theorem on symmetric functions, we can write a i as a symmetric polynomial in z 1 , … , z n with rational coefficients. On the other side, for a permutation σ ∈ S n , set where σ runs through all permutations in S n . Theorem 2.7. (Hilbert) Let G ¼ S n be acting on  x 1 , … , x n ð Þ . The field E of S n À invariants is  t 1 , … , t n ð Þ , where t i is the i th symmetric polynomial in x 1 , … , x n and  x 1 , … , x n ð Þhas Galois group S n over E. It is the splitting field of the polynomial f x ð Þ ¼ x n À t 1 x nÀ1 þ … þ À1 ð Þ n t n : Let F be a finite field such that char F, n ð Þ¼1. A non-zero polynomial in  x, y ½ defines a curve on the plane  2 . The elliptic curves are curves of the form y 2 ¼ f x ð Þ, where f x ð Þ is a polynomial of degree 3 with coefficients in . Proposition 2.8. Let n ¼ r s be a factorisation of an integer positive number n into irreducible coprime factors and assume r < s, then there is a sequence of field extensions  q r ⊂  q s ⊂  q n .
Proof. Consider the map T n : F n ↦ F n where σ j is the jth elementary symmetric function in the variables x i . Thus t j , j ¼ 1, ⋯n È É , are the coefficients of the equation: If we apply Theorem 2.7 to the i th elementary symmetric polynomial in the symbols α, α q , α q 2 , … , α q n , we get that the field of S n invariants of the polynomial f z, t 1 , … , t n ð Þcontains an extension  q n of  q . Moreover, for any divisor r of n, one can consider the field of S r invariants, and apply Theorem 2.7 to the symbols α, α q 2s , … , α q rs , where n ¼ rs. Then we get an extension  q s of  q r and all its  qsubspaces are stable under Gal  q s = q r À Á . □ Example 5. Assume n ¼ q þ 1 and we study again the roots of the polynomial x q À 1 in its splitting field. Let ξ be a non-trivial n-root of unity, for any divisor r of n, one can consider the symbols ξ q r , … , ξ q , ξ. The field of S r invariants of the polynomial f z, t 1 , … , t r ð Þis the set of solutions to the equation: In  2 n , for any divisor d of n, there are exactly 2 dÀ1 solutions to Eq. (2) if n=d is odd and 2 d solutions if n=d is even.
Instead of considering r, s divisors of n, we can consider a partition of n into two parts. For example for an integer 0 ≤ k ≤ n, we consider the partition k, n À k ð Þof n. Fix two elements g 1 , g 2 ∈ GL n, q ð Þof rank k and rank n À k. These points correspond to linear transformations T g i :  q n !  q n , i ∈ 1, 2. It is well known that the corresponding points  q k ,q n ⊂  q n and  q nÀk ,q n ⊂  q n in the Grassmannians G k,n  q À Á of kÀdimensional subspaces and the Grassmannian G nÀk  q À Á of n À k dimensional subspaces respectively are dual subspaces in the underlying vector space  q À Á n for the Euclidean inner product. Note that the Hamming weight is preserved under invertible linear transformation. This case is of great interest for applications in coding theory, since the corresponding codes with generator matrices G 1 and G 2 respectively are dual codes. Namely, given a linear n, k ½ -code, a parity check matrix for C is an n À k ð ÞÂn matrix H of rank n À k such that C ¼ x ∈  q À Á n : Hc T ¼ 0 È É . Then the dual code C ⊥ is the linear n, n À k ½ code generated by the parity check matrix of C. There is a right action of the general linear group GL n,  q À Á on G k,n  q À Á : G k,n  q À Á Â GL n,  q À Á ! G k,n  q À Á U, A ð Þ!UA: One can study the orbits of G k,n  q À Á by the action of any subgroup in the general linear group GL n,  q À Á . For example we can study the orbit of any triangle group: the Klein group ℤ 2 Â ℤ 2 , the dihedral group, the alternated groups A 4 and A 5 or the symmetric group S n . Take as T the standard shift operator on  n q , a linear code C is said to be quasi-cyclic of index l or lÀquasi-cyclic if and only if is invariant under T l . If l ¼ 1, it is just a cyclic code. The quantity m ≔ n=l is called the co-index of C. Namely, if we view a codeword c 0 , c 1 , … , c nÀ1 ð Þ of C as a polynomial c 0 þ c 1 x þ … þ c nÀ1 x nÀ1 ∈  q x ½ , then T c x ð Þ ð Þ ¼ x Á c x ð Þ mod x n À 1 ð Þ. Example 6. We study the action of a rotation element on the Grassmannian G 2,4  q À Á of lines in a 3-dimensional projective space PG 3, q ð Þ. We apply to any line g a rotation τ of angle α ¼ 2π n , represented by the array of vectors < 1, 0, 0 ð Þ, 0, cos α ð Þ, sin α ð Þ ð Þ , 0, À cos α ð Þ, sin α ð Þ ð Þ > . It is easy to see that the orbit code by the composed action τ m with m divisor of n is a quasi-cyclic code of index m n . In general, we study generalised Grassmannians or more commonly known as flag varieties. Fix a partition λ ¼ λ 1 , … , λ r ð Þof n and let F λ ¼ F λ  q À Á be the variety of partial flags of  q Àvector spaces