Abstract
For any finite field \({\mathbb {F}}_q\) with q elements, we study the set \({\mathscr {F}}_{(q,m)}\) of functions from \({\mathbb {F}}_q^m\) into \({\mathbb {F}}_q\) from geometric, analytic and algorithmic points of view. We determine a linear system of \(q^{m+1}\) equations and \(q^{m+1}\) unknowns, which has for unique solution the Hamming distances of a function in \({\mathscr {F}}_{(q,m)}\) to all the affine functions. Moreover, we introduce a Fourier-like transform which allows us to compute all these distances at a cost \(O(mq^m)\) and which would be useful for further problems.
We’re sorry, something doesn't seem to be working properly.
Please try refreshing the page. If that doesn't work, please contact support so we can address the problem.
Notes
We thank the anonymous referee to communicated us this proof.
References
Ashikhmin, A., Litsyn, S.: Fast decoding of non-binary first order Reed-Muller codes. AAECC 7, 299–308 (1996)
Colbourn, C., Dinitz, H. (eds.): Handbook of Combinatorial Designs. Discrete Mathematics and its Applications, 2nd edn. Chapman and Hall/CRC, Boca Raton (2007)
Lachaud, G., Wolfmann, J.: The weights of the orthogonals of the extended quadratic binary Goppa codes. IEEE Tans. Inf. Theory 36(3), 686–692 (1990)
Langevin, P.: Rayon de Recouvrement des Codes de Reed-Muller Affines. Ph.D. Thesis, Université de Limoges (1992)
Langevin, P.: On the Orphans and Covering Radius of the Reed-Muller Codes. Lecture Notes in Computer Sciences, vol. 539. Springer, Berlin (1991)
Leducq, E.: On the covering radius of first order generalized Reed-Muller codes. IEEE Trans. Inf. Theory 59(3), 1590–1596 (2013)
Mc Eliece, R.J.: Quadratic forms over finite fields and second order Reed-Muller codes. JPL Sp. Pograms Summ. III, 37–58 (1969)
Rolland, R.: Fonction maximalement non linéaires sur un corps fini. Technical Report 25, Institut de Mathématiques de Luminy (2000)
Author information
Authors and Affiliations
Corresponding author
Appendices
Appendix 1: Fast computation algorithm of \(T_{(q,m)}\)
The \({\mathbb {C}}{\mathbb {F}}_q\)-matrix of \(T_{(q,m)}\)
1.1 Presentation of the matrix
From now on we suppose that we have chosen an order on \({\mathbb {F}}_q^m\), so that the writing of vectors and matrices indexed by this set is well defined.
If \(\phi \in {\mathscr {G}}_{(q,m)}\) then it is determined by the \({\mathbb {C}}{\mathbb {F}}_q\)-vector \(\left( \phi (u)\right) _{u \in {\mathbb {F}}_q^m}\). Let us consider the \({\mathbb {C}}{\mathbb {F}}_q\)-matrix
Then the function \(T_{(q,m)}(\phi )\) is determined by the \({\mathbb {C}}{\mathbb {F}}_q\)-vector
The problem is to find a fast algorithm to compute this product, namely the product of a \({\mathbb {C}}{\mathbb {F}}_q\)-vector by the \({\mathbb {C}}{\mathbb {F}}_q\)-matrix \({\mathscr {M}}_{(q,m)}\).
Remark 6
Do not confuse the matrix \({\mathscr {T}}{(q,m)}\) with \({\mathscr {M}}_{(q,m)}\). The first one is the matrix of the transform \(T_{(q,m)}\) when the set of functions \({\mathscr {G}}_{(q,m)}\) is considered as a vector space over \({\mathbb {C}}\). The second one is the matrix of the transform \(T_{(q,m)}\) when the set of functions \({\mathscr {G}}_{(q,m)}\) is considered as a module over the ring \({\mathbb {C}}{\mathbb {F}}_q\). However, it is not difficult to pass from one to the other.
1.2 The tensor structure of the matrix \({\mathscr {M}}_{(q,m)}\)
Proposition 2
The matrix \({\mathscr {M}}_{(q,m)}\) can be written as
where \(\otimes \) denotes the Kronecker product.
Proof
The proof is done by induction on m. The proposition is true for \(m=1\). Let us suppose that it is true for a value \(m\ge 1\). Then
which proves that the proposition is true for \(m+1\). \(\square \)
Proposition 3
The matrix \({\mathscr {M}}_{(q,m)}\) can be written as
where
and \(I_s\) is the identity matrix of size \(s \times s\).
Proof
The proof is done by induction on m. For \(m=1\) we have
then the proposition is true. Let us suppose that the proposition is true for a value \(m\ge 1\). By definition, for \(1 \le i \le m\) we have the following formulas
and we have also
Then
and by induction hypothesis
which proves that the proposition is true for \(m+1\). \(\square \)
Let us remark that, using a similar proof, we can show that the matrix can also be written as
The multiplication of a vector in \(\left( {\mathbb {C}}{\mathbb {F}}_q\right) ^{q^m}\) by a matrix \(M_{q^m}^{(i)}\) is quite simple. Any row of the matrix has q non-zero elements and these elements are of the form \(Z^s\). The multiplication of an element of \({\mathbb {C}}{\mathbb {F}}_q\) by an element \(Z^s\) for some s is a shift. Hence, for any matrix \(M_{q^m}^{(i)}\) and for any row of this matrix we have to do q shifts and \(q-1\) additions in \({\mathbb {C}}{\mathbb {F}}_q\), namely \(q(q-1)\) additions in \({\mathbb {C}}\). Consequently, as we have to do a product involving m matrices \(M_{q^m}^{(i)}\) of \(q^m\) rows each, the following proposition occurs
Proposition 4
The multiplication of a vector in \(\left( {\mathbb {C}}{\mathbb {F}}_q\right) ^{q^m}\) by the matrix \({\mathscr {M}}_{(q,m)}\) needs \(q(q-1)mq^m\) additions in \({\mathbb {C}}\) and \(mq^{m+1}\) shifts in \({\mathbb {C}}{\mathbb {F}}_q\).
Appendix 2: Practice of the transform
Let us remark that the multiplication by a matrix of the form \(M_{q^i}^{(i)}\) has a particular importance. Indeed, to multiply a vector \(\omega =(\xi _u)_{u \in {\mathbb {F}}_q^m}\) on length \(q^m\) by \({\mathscr {M}}_{(q,m)}\) it is sufficient to compute \(M_{q^m}^{(m)}.\omega \), then to split the result in q vectors of length \(q^{m-1}\) (by taking in the order q blocks of \(q^{(m-1)}\) components), to transform these q vectors by \(T_{(q,{m-1})}\) and finally to reconstruct the result vector by concatenation of the q resulting blocks. By induction we see that we only need multiplications by matrices of the form \(M_{q^i}^{(i)}\).
The multiplication of a vector \(\omega =(\xi _u)_{u \in {\mathbb {F}}_q^i}\) of length \(q^i\) (where \(i>0\)) can be realized in the following way: from \(\omega \) we construct the matrix \(\varOmega \) having q rows and \(q^{i-1}\) columns, where the q rows are constituted by the q blocks of \(q^{i-1}\) components of \(\omega \) taken in the order. The result is obtained by computing the product \({\mathscr {M}}_{(q,1)} . \varOmega \), then by reconstructing, by concatenation of the q rows of this product, the result vector.
Appendix 3: A toy example
Let us take the simple example where \(q=3\) and \(m=2\). Let us define the function \(f \in \{{\mathbb {F}}_3^2 \rightarrow {\mathbb {F}}_3\}\) and the function \(F=Z^f\) by the following array
u | (0,0) | (1,0) | (2,0) | (0,1) | (1,1) | (2,1) | (0,2) | (1,2) | (2,2) |
---|---|---|---|---|---|---|---|---|---|
f(u) | 0 | 2 | 1 | 1 | 2 | 0 | 2 | 0 | 1 |
F(u) | \(\hbox {Z}^0\) | \(\hbox {Z}^2\) | \(\hbox {Z}^1\) | \(\hbox {Z}^1\) | \(\hbox {Z}^2\) | \(\hbox {Z}^0\) | \(\hbox {Z}^2\) | \(\hbox {Z}^0\) | \(\hbox {Z}^1\) |
Now there is two steps. The first one is to multiply by \(M_{3^2}^2\). This is done using the matrix \(\varOmega \) introduced in the previous section. Let us remark that the matrix \({\mathscr {M}}_{(3,1)}\) is
Let us compute for this first step the product by \({\mathscr {M}}_{(3,1)}\) of the matrix obtained by splitting F(u) into three rows.
The second step computes the product by \(M_{3}^1\) of the vectors given by the three rows of the previous result matrix. This can be done by computing the three following products: the first one is
the second one is
the third one is the same that the first one.
Now we have computed all the \(N_{v,t}(f)\)
The distance from f to the code \(RM_{(3,2)}^1\) is \(q^m - \sup _{(v,t)\in {{\mathbb {F}}_q^m}\times {{\mathbb {F}}_q}}N_{v,t}(f)=2.\) From Formulas (10) and (11) it follows that the covering radius of the code \(RM_{(3,2)}^1\) is 5.
Remark 7
Let us consider the finite field \({\mathbb {F}}_9\) as \({\mathbb {F}}_3[X]/(X^2+X+2)\). Let \(\alpha \) be the class of X. Let us identify \({\mathbb {F}}_3^2\) to \({\mathbb {F}}_9\) by setting \((u_1,u_2)=u_1+\alpha u_2\). Then the previous function f is defined by \(f(0)=0\) and \(f(u)=trace(u^{-1})\) if \(u\ne 0\). In contrary to the binary case (cf. [3]), the distance of the function f to the affine functions is not maximal.
Rights and permissions
About this article
Cite this article
Abdón, M., Rolland, R. Hamming distances from a function to all codewords of a Generalized Reed-Muller code of order one. AAECC 28, 387–408 (2017). https://doi.org/10.1007/s00200-016-0311-x
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00200-016-0311-x