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

toricCode -- a toric code construction

Synopsis

Description

Given a finite field F and an integer matrix M, this method produces a toric code whose lattice polytope $P$ is the convex hull of the row vectors of M. By definition, the toric code is generated by codewords obtained by evaluating the monomials corresponding to the lattice points of $P$ at the points of the algebraic torus (F*)$^m$, where $m$ is the number of columns of M.

i1 : M=matrix{{1,4},{2,5},{10,6}};

              3       2
o1 : Matrix ZZ  <-- ZZ
i2 : T=toricCode(GF 4,M);
i3 : T.VanishingIdeal

             3       3
o3 = ideal (t  + 1, t  + 1)
             1       2

o3 : Ideal of GF 4[t ..t ]
                    1   2
i4 : T.ExponentsMatrix

o4 = | 1  4 |
     | 10 6 |
     | 3  5 |
     | 2  5 |
     | 4  5 |
     | 5  5 |

              6       2
o4 : Matrix ZZ  <-- ZZ
i5 : T.LinearCode

                                       9
o5 = LinearCode{AmbientModule => (GF 4)                                                                                                                                                                                                                                             }
                BaseField => GF 4
                cache => CacheTable{}
                Code => image | a+1 1   a   a   a   a   |
                              | a+1 a+1 1   a   a+1 a   |
                              | 1   a+1 a+1 1   a   1   |
                              | 1   a   a   1   a+1 1   |
                              | a   a+1 a   a+1 1   a+1 |
                              | 1   1   1   1   1   1   |
                              | a   1   a+1 a+1 a+1 a+1 |
                              | a+1 a   a+1 a   1   a   |
                              | a   a   1   a+1 a   a+1 |
                GeneratorMatrix => | a+1 a+1 1   1   a   1 a   a+1 a   |
                                   | 1   a+1 a+1 a   a+1 1 1   a   a   |
                                   | a   1   a+1 a   a   1 a+1 a+1 1   |
                                   | a   a   1   1   a+1 1 a+1 a   a+1 |
                                   | a   a+1 a   a+1 1   1 a+1 1   a   |
                                   | a   a   1   1   a+1 1 a+1 a   a+1 |
                Generators => {{a + 1, a + 1, 1, 1, a, 1, a, a + 1, a}, {1, a + 1, a + 1, a, a + 1, 1, 1, a, a}, {a, 1, a + 1, a, a, 1, a + 1, a + 1, 1}, {a, a, 1, 1, a + 1, 1, a + 1, a, a + 1}, {a, a + 1, a, a + 1, 1, 1, a + 1, 1, a}, {a, a, 1, 1, a + 1, 1, a + 1, a, a + 1}}
                ParityCheckMatrix => | 1 0 0 a+1 0   0 a+1 a 0   |
                                     | 0 1 0 1   a+1 0 0   0 a   |
                                     | 0 0 1 a+1 a   0 0   a 0   |
                                     | 0 0 0 0   0   1 a   1 a+1 |
                ParityCheckRows => {{1, 0, 0, a + 1, 0, 0, a + 1, a, 0}, {0, 1, 0, 1, a + 1, 0, 0, 0, a}, {0, 0, 1, a + 1, a, 0, 0, a, 0}, {0, 0, 0, 0, 0, 1, a, 1, a + 1}}

o5 : LinearCode
i6 : length T.LinearCode

o6 = 9
i7 : dim T.LinearCode

o7 = 5

Ways to use toricCode :

For the programmer

The object toricCode is a method function with options.

Menu

Symbols that are used as a key for storing information of a toric code