Skip to main content
Log in

Hamming distances from a function to all codewords of a Generalized Reed-Muller code of order one

  • Original Paper
  • Published:
Applicable Algebra in Engineering, Communication and Computing Aims and scope

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

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

  1. We thank the anonymous referee to communicated us this proof.

References

  1. Ashikhmin, A., Litsyn, S.: Fast decoding of non-binary first order Reed-Muller codes. AAECC 7, 299–308 (1996)

    Article  MATH  MathSciNet  Google Scholar 

  2. Colbourn, C., Dinitz, H. (eds.): Handbook of Combinatorial Designs. Discrete Mathematics and its Applications, 2nd edn. Chapman and Hall/CRC, Boca Raton (2007)

    Google Scholar 

  3. 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)

    Article  MATH  MathSciNet  Google Scholar 

  4. Langevin, P.: Rayon de Recouvrement des Codes de Reed-Muller Affines. Ph.D. Thesis, Université de Limoges (1992)

  5. Langevin, P.: On the Orphans and Covering Radius of the Reed-Muller Codes. Lecture Notes in Computer Sciences, vol. 539. Springer, Berlin (1991)

    MATH  Google Scholar 

  6. Leducq, E.: On the covering radius of first order generalized Reed-Muller codes. IEEE Trans. Inf. Theory 59(3), 1590–1596 (2013)

    Article  MATH  MathSciNet  Google Scholar 

  7. Mc Eliece, R.J.: Quadratic forms over finite fields and second order Reed-Muller codes. JPL Sp. Pograms Summ. III, 37–58 (1969)

    Google Scholar 

  8. Rolland, R.: Fonction maximalement non linéaires sur un corps fini. Technical Report 25, Institut de Mathématiques de Luminy (2000)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Robert Rolland.

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

$$\begin{aligned} {\mathscr {M}}_{(q,m)}= {(Z^{-<u,v>})}_{\begin{array}[t]{c} {\scriptstyle u \in {\mathbb {F}}_q^m} \\ {\scriptstyle v \in {\mathbb {F}}_q^m} \end{array}} . \end{aligned}$$
(13)

Then the function \(T_{(q,m)}(\phi )\) is determined by the \({\mathbb {C}}{\mathbb {F}}_q\)-vector

$$\begin{aligned} \left( T_{(q,m)}(\phi )(u)\right) _{u \in {\mathbb {F}}_q^m}= {\mathscr {M}}_{(q,m)}.\left( \phi (u)\right) _{u \in {\mathbb {F}}_q^m}. \end{aligned}$$

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

$$\begin{aligned} {\mathscr {M}}_{(q,m)}=\underbrace{{\mathscr {M}}_{(q,1)} \otimes {\mathscr {M}}_{(q,1)} \otimes \cdots \otimes {\mathscr {M}}_{(q,1)}}_{m~terms}, \end{aligned}$$

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

$$\begin{aligned} {(Z^{-<u,v>})}_{\begin{array}[t]{c} {\scriptstyle u \in {\mathbb {F}}_q^m} \\ {\scriptstyle v \in {\mathbb {F}}_q^m} \end{array}} \otimes {\mathscr {M}}_{(q,1)}= {(Z^{-<u,v>-ab})}_{\begin{array}[t]{c} {\scriptstyle u \in {\mathbb {F}}_q^m, a\in {\mathbb {F}}_q} \\ {\scriptstyle v \in {\mathbb {F}}_q^m, b\in {\mathbb {F}}_q } \end{array}} = {(Z^{-<u,v>})}_{\begin{array}[t]{c} {\scriptstyle u \in {\mathbb {F}}_q^{m+1}} \\ {\scriptstyle v \in {\mathbb {F}}_q^{m+1}} \end{array}} \end{aligned}$$

which proves that the proposition is true for \(m+1\). \(\square \)

Proposition 3

The matrix \({\mathscr {M}}_{(q,m)}\) can be written as

$$\begin{aligned} {\mathscr {M}}_{(q,m)}=M_{q^m}^{(1)}M_{q^m}^{(2)}\ldots M_{q^m}^{(m)} \end{aligned}$$

where

$$\begin{aligned} M_{q^m}^{(i)}=I_{q^{m-i}}\otimes {\mathscr {M}}_{(q,1)} \otimes I_{q^{i-1}} \end{aligned}$$

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

$$\begin{aligned} M_q^{(1)}=I_1 \otimes {\mathscr {M}}_{(q,1)} \otimes I_1={\mathscr {M}}_{(q,1)}, \end{aligned}$$

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

$$\begin{aligned} M_{q^{m+1}}^{(i)}= & {} I_{q^{m+1-i}} \otimes {\mathscr {M}}_{(q,1)} \otimes I_{q^{i-1}} \\ M_{q^{m+1}}^{(i)}= & {} I_q \otimes I_{q^{m-i}} \otimes {\mathscr {M}}_{(q,1)} \otimes I_{q^{i-1}} \\ M_{q^{m+1}}^{(i)}= & {} I_q \otimes M_{q^{m}}^{(i)} \end{aligned}$$

and we have also

$$\begin{aligned} M_{q^{m+1}}^{(m+1)}={\mathscr {M}}_{(q,1)} \otimes I_{q^m}. \end{aligned}$$

Then

$$\begin{aligned} M_{q^m}^{(1)}M_{q^m}^{(2)}\ldots M_{q^m}^{(m+1)}= & {} (I_q \otimes M_{q^{m}}^{(1)}) \ldots (I_q \otimes M_{q^{m}}^{(m)}) ({\mathscr {M}}_{(q,1)} \otimes I_{q^m}), \\ M_{q^m}^{(1)}M_{q^m}^{(2)}\ldots M_{q^m}^{(m+1)}= & {} {\mathscr {M}}_{(q,1)} \otimes (M_{q^m}^{(1)}M_{q^m}^{(2)}\ldots M_{q^m}^{(m)}), \end{aligned}$$

and by induction hypothesis

$$\begin{aligned} M_{q^m}^{(1)}M_{q^m}^{(2)}\ldots M_{q^m}^{(m+1)}= & {} {\mathscr {M}}_{(q,1)} \otimes {\mathscr {M}}_{(q,m)}, \\ M_{q^m}^{(1)}M_{q^m}^{(2)}\ldots M_{q^m}^{(m+1)}= & {} {\mathscr {M}}_{(q,{m+1})}, \end{aligned}$$

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

$$\begin{aligned} {\mathscr {M}}_{(q,m)}=M_{q^m}^{(m)}M_{q^m}^{(m-1)}\cdots M_{q^m}^{(1)}. \end{aligned}$$

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

$$\begin{aligned} \begin{pmatrix} Z^0 &{} \quad Z^0 &{} \quad Z^0 \\ Z^0 &{} \quad Z^2 &{} \quad Z^1 \\ Z^0 &{} \quad Z^1 &{} \quad Z^2 \end{pmatrix}. \end{aligned}$$

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.

$$\begin{aligned} \begin{pmatrix} Z^0 &{} \quad Z^0 &{} \quad Z^0 \\ Z^0 &{} \quad Z^2 &{} \quad Z^1 \\ Z^0 &{} \quad Z^1 &{} \quad Z^2 \end{pmatrix} \begin{pmatrix} Z^0 &{} \quad Z^2 &{} \quad Z^1 \\ Z^1 &{} \quad Z^2 &{} \quad Z^0 \\ Z^2 &{} \quad Z^0 &{} \quad Z^1 \end{pmatrix} = \begin{pmatrix} Z^0+Z^1+Z^2 &{} \quad Z^0+ 2 Z^2 &{} \quad Z^0 + 2Z^1 \\ 3 Z^0 &{}\quad 2 Z^1+Z^2 &{} \quad Z^1+ 2 Z^2 \\ Z^0+Z^1+Z^2 &{} \quad Z^0+2Z^2 &{} \quad Z^0+2Z^1 \\ \end{pmatrix}. \end{aligned}$$

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

$$\begin{aligned} \begin{pmatrix} Z^0 &{} \quad Z^0 &{} \quad Z^0 \\ Z^0 &{} \quad Z^2 &{} \quad Z^1 \\ Z^0 &{} \quad Z^1 &{} \quad Z^2 \end{pmatrix} \begin{pmatrix} Z^0+Z^1+Z^2 \\ Z^0+ 2 Z^2 \\ Z^0 + 2Z^1 \end{pmatrix} = \begin{pmatrix} 3Z^0+3Z^1+3Z^2 \\ Z^0+4Z^1+4Z^2 \\ 5Z^0+2Z^1+2Z^2 \end{pmatrix} \end{aligned}$$

the second one is

$$\begin{aligned} \begin{pmatrix} Z^0 &{} \quad Z^0 &{} \quad Z^0 \\ Z^0 &{} \quad Z^2 &{} \quad Z^1 \\ Z^0 &{} \quad Z^1 &{} \quad Z^2 \end{pmatrix} \begin{pmatrix} 3Z^0 \\ 2Z^1+Z^2 \\ Z^1+2Z^2 \end{pmatrix} = \begin{pmatrix} 3Z^0 + 3 Z^1 +3 Z^2\\ 7Z^0+Z^1+Z^2\\ 5Z^0 + 2Z^1+2Z^2 \end{pmatrix}. \end{aligned}$$

the third one is the same that the first one.

Now we have computed all the \(N_{v,t}(f)\)

$$\begin{aligned} N_{(0,0),0}(f)= & {} 3,N_{(0,0),1}(f)=3,N_{(0,0),2}(f)=3, \\ N_{(1,0),0}(f)= & {} 1,N_{(1,0),1}(f)=4,N_{(1,0),2}(f)=4, \\ N_{(2,0),0}(f)= & {} 5,N_{(2,0),1}(f)=2,N_{(2,0),2}(f)=2, \\ N_{(0,1),0}(f)= & {} 3,N_{(0,1),1}(f)=3,N_{(0,1),2}(f)=3, \\ N_{(1,1),0}(f)= & {} 7,N_{(1,1),1}(f)=1,N_{(1,1),2}(f)=1, \\ N_{(2,1),0}(f)= & {} 5,N_{(2,1),1}(f)=2,N_{(2,1),2}(f)=2, \\ N_{(0,2),0}(f)= & {} 3,N_{(0,2),1}(f)=3,N_{(0,2),2}(f)=3, \\ N_{(1,2),0}(f)= & {} 1,N_{(1,2),1}(f)=4,N_{(1,2),2}(f)=4, \\ N_{(2,2),0}(f)= & {} 5,N_{(2,2),1}(f)=2,N_{(2,2),2}(f)=2. \end{aligned}$$

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

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00200-016-0311-x

Keywords

Mathematics Subject Classification

Navigation