Macaulay2 » Documentation
Packages » CodingTheory > EvaluationCode > evaluationCode
next | previous | forward | backward | up | index | toc

evaluationCode -- functions to construct evaluation codes over Galois fields

Synopsis

Description

We present below the ways in how an evaluation code $C$ can be defined.

a ring and a two lists are given

Given a finite field F, an ordered list P of points in F$^m$, and an ordered list S of polynomials over F in $m$ variables, this method produces an EvaluationCode $C$ generated by codewords obtained by evaluating the given polynomials in S at the given points in P.

i1 : F=GF(4);
i2 : R=F[x,y,z];
i3 : P={{0,0,0},{1,0,0},{0,1,0},{0,0,1},{1,1,1},{a,a,a}};
i4 : S={x+y+z,a+y*z^2,z^2,x+y+z+z^2};
i5 : C=evaluationCode(F,P,S)

o5 = EvaluationCode{cache => CacheTable{}                                                                                                               }
                                                               6
                    LinearCode => LinearCode{AmbientModule => F                                                                                        }
                                             BaseField => F
                                             cache => CacheTable{}
                                             Code => image | 0 a   0   0 |
                                                           | 1 a   0   1 |
                                                           | 1 a   0   1 |
                                                           | 1 a   1   0 |
                                                           | 1 a+1 1   0 |
                                                           | a a+1 a+1 1 |
                                             GeneratorMatrix => | 0 1 1 1 1   a   |
                                                                | a a a a a+1 a+1 |
                                                                | 0 0 0 1 1   a+1 |
                                                                | 0 1 1 0 0   1   |
                                             Generators => {{0, 1, 1, 1, 1, a}, {a, a, a, a, a + 1, a + 1}, {0, 0, 0, 1, 1, a + 1}, {0, 1, 1, 0, 0, 1}}
                                             ParityCheckMatrix => | 1 0 0 a   a 0 |
                                                                  | 0 1 0 a+1 0 1 |
                                                                  | 0 0 1 a+1 0 1 |
                                             ParityCheckRows => {{1, 0, 0, a, a, 0}, {0, 1, 0, a + 1, 0, 1}, {0, 0, 1, a + 1, 0, 1}}
                    Points => {{0, 0, 0}, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {1, 1, 1}, {a, a, a}}
                                                    2       2   2
                    PolynomialSet => {x + y + z, y*z  + a, z , z  + x + y + z}
                                                         2    2                      2    2           3           2
                    VanishingIdeal => ideal (x*z + y*z, y  + z  + y + z, x*y + y*z, x  + z  + x + z, z  + (a + 1)z  + a*z)

o5 : EvaluationCode

a ring, a list and a matrix are given

Given a finite field F, an ordered list P of points in F$^m$, and a matrix M with $m$ columns, this method produces a linear code $C$ generated by the codewords obtained by evaluating the monomials defined by the rows of M at the given points in P.

i6 : F=GF(4);
i7 : R=F[x,y,z];
i8 : P={{0,0,0},{1,0,0},{0,1,0},{0,0,1},{1,1,1},{a,a,a}};
i9 : M=matrix{{0,0,1},{1,1,1}};

              2       3
o9 : Matrix ZZ  <-- ZZ
i10 : C=evaluationCode(F,P,M)

o10 = EvaluationCode{cache => CacheTable{}                                                                                                        }
                                                                6
                     LinearCode => LinearCode{AmbientModule => F                                                                                 }
                                              BaseField => F
                                              cache => CacheTable{}
                                              Code => image | 0 0 |
                                                            | 0 0 |
                                                            | 0 0 |
                                                            | 1 0 |
                                                            | 1 1 |
                                                            | a 1 |
                                              GeneratorMatrix => | 0 0 0 1 1 a |
                                                                 | 0 0 0 0 1 1 |
                                              Generators => {{0, 0, 0, 1, 1, a}, {0, 0, 0, 0, 1, 1}}
                                              ParityCheckMatrix => | 1 0 0 0 0 0 |
                                                                   | 0 1 0 0 0 0 |
                                                                   | 0 0 1 0 0 0 |
                                                                   | 0 0 0 1 a a |
                                              ParityCheckRows => {{1, 0, 0, 0, 0, 0}, {0, 1, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 0}, {0, 0, 0, 1, a, a}}
                     Points => {{0, 0, 0}, {1, 0, 0}, {0, 1, 0}, {0, 0, 1}, {1, 1, 1}, {a, a, a}}
                     PolynomialSet => {t , t t t }
                                        2   0 1 2
                                                            2    2                          2    2             3           2
                     VanishingIdeal => ideal (t t  + t t , t  + t  + t  + t , t t  + t t , t  + t  + t  + t , t  + (a + 1)t  + a*t )
                                               0 2    1 2   1    2    1    2   0 1    1 2   0    2    0    2   2           2      2

o10 : EvaluationCode

Caveat

While this function may work even when a ring is given, instead of a finite field, it is possible that the results are not the expected ones.

Ways to use evaluationCode :

For the programmer

The object evaluationCode is a method function with options.

Menu

Constructions of evaluation codes