Macaulay2 » Documentation
Packages » CodingTheory > LinearCode > LinearCode == LinearCode
next | previous | forward | backward | up | index | toc

LinearCode == LinearCode -- determines if two linear codes are equal

Synopsis

Description

Given linear codes C1 and C2, this function determines if they define the same subspace over the same field or ring.

i1 : F = GF(3,4)

o1 = F

o1 : GaloisField
i2 : codeLen = 7; codeDim = 3;
i4 : L = apply(toList(1..codeDim),j-> apply(toList(1..codeLen),i-> random(F)))

          3       2   3             3    2           3    2         3    2  
o4 = {{- a  + a, a , a  + a + 1, - a  - a  - a - 1, a  - a  - a, - a  - a  +
     ------------------------------------------------------------------------
               3    2         3    2           3    2           2       2  
     a - 1, - a  - a  - 1}, {a  - a  + a + 1, a  - a  + a - 1, a  - a, a  -
     ------------------------------------------------------------------------
           3    2             3    2           3    2             3       2  
     1, - a  + a  + a - 1, - a  - a  + a - 1, a  - a  - a - 1}, {a  - 1, a  -
     ------------------------------------------------------------------------
         2       3    2           2          3    2
     a, a  + a, a  + a  - a - 1, a  - 1, a, a  + a  - a - 1}}

o4 : List
i5 : C1 = linearCode(F,L)

                                  7
o5 = LinearCode{AmbientModule => F                                                                                                                                                                                                                                                                            }
                BaseField => F
                cache => CacheTable{}
                Code => image | -a3+a      a3-a2+a+1  a3-1      |
                              | a2         a3-a2+a-1  a2-a      |
                              | a3+a+1     a2-a       a2+a      |
                              | -a3-a2-a-1 a2-1       a3+a2-a-1 |
                              | a3-a2-a    -a3+a2+a-1 a2-1      |
                              | -a3-a2+a-1 -a3-a2+a-1 a         |
                              | -a3-a2-1   a3-a2-a-1  a3+a2-a-1 |
                GeneratorMatrix => | -a3+a     a2        a3+a+1 -a3-a2-a-1 a3-a2-a    -a3-a2+a-1 -a3-a2-1  |
                                   | a3-a2+a+1 a3-a2+a-1 a2-a   a2-1       -a3+a2+a-1 -a3-a2+a-1 a3-a2-a-1 |
                                   | a3-1      a2-a      a2+a   a3+a2-a-1  a2-1       a          a3+a2-a-1 |
                                   3       2   3             3    2           3    2         3    2             3    2         3    2           3    2           2       2         3    2             3    2           3    2             3       2       2       3    2           2          3    2
                Generators => {{- a  + a, a , a  + a + 1, - a  - a  - a - 1, a  - a  - a, - a  - a  + a - 1, - a  - a  - 1}, {a  - a  + a + 1, a  - a  + a - 1, a  - a, a  - 1, - a  + a  + a - 1, - a  - a  + a - 1, a  - a  - a - 1}, {a  - 1, a  - a, a  + a, a  + a  - a - 1, a  - 1, a, a  + a  - a - 1}}
                ParityCheckMatrix => | 1 0 0 0 a3-a2      a3+a2-a-1  a3+a2     |
                                     | 0 1 0 0 -a2-1      a3-a2+a-1  1         |
                                     | 0 0 1 0 a3+a2+a+1  -a3+a2-a+1 a3+a2+a+1 |
                                     | 0 0 0 1 -a3+a2+a-1 a3-a       a3-a2-a-1 |
                                                  3    2   3    2           3    2                   2       3    2                            3    2             3    2           3    2                           3    2           3       3    2
                ParityCheckRows => {{1, 0, 0, 0, a  - a , a  + a  - a - 1, a  + a }, {0, 1, 0, 0, - a  - 1, a  - a  + a - 1, 1}, {0, 0, 1, 0, a  + a  + a + 1, - a  + a  - a + 1, a  + a  + a + 1}, {0, 0, 0, 1, - a  + a  + a - 1, a  - a, a  - a  - a - 1}}

o5 : LinearCode
i6 : C2 = linearCode(matrix L)

                                  7
o6 = LinearCode{AmbientModule => F                                                                                                                                                                                                                                                                            }
                BaseField => F
                cache => CacheTable{}
                Code => image | -a3+a      a3-a2+a+1  a3-1      |
                              | a2         a3-a2+a-1  a2-a      |
                              | a3+a+1     a2-a       a2+a      |
                              | -a3-a2-a-1 a2-1       a3+a2-a-1 |
                              | a3-a2-a    -a3+a2+a-1 a2-1      |
                              | -a3-a2+a-1 -a3-a2+a-1 a         |
                              | -a3-a2-1   a3-a2-a-1  a3+a2-a-1 |
                GeneratorMatrix => | -a3+a     a2        a3+a+1 -a3-a2-a-1 a3-a2-a    -a3-a2+a-1 -a3-a2-1  |
                                   | a3-a2+a+1 a3-a2+a-1 a2-a   a2-1       -a3+a2+a-1 -a3-a2+a-1 a3-a2-a-1 |
                                   | a3-1      a2-a      a2+a   a3+a2-a-1  a2-1       a          a3+a2-a-1 |
                                   3       2   3             3    2           3    2         3    2             3    2         3    2           3    2           2       2         3    2             3    2           3    2             3       2       2       3    2           2          3    2
                Generators => {{- a  + a, a , a  + a + 1, - a  - a  - a - 1, a  - a  - a, - a  - a  + a - 1, - a  - a  - 1}, {a  - a  + a + 1, a  - a  + a - 1, a  - a, a  - 1, - a  + a  + a - 1, - a  - a  + a - 1, a  - a  - a - 1}, {a  - 1, a  - a, a  + a, a  + a  - a - 1, a  - 1, a, a  + a  - a - 1}}
                ParityCheckMatrix => | 1 0 0 0 a3-a2      a3+a2-a-1  a3+a2     |
                                     | 0 1 0 0 -a2-1      a3-a2+a-1  1         |
                                     | 0 0 1 0 a3+a2+a+1  -a3+a2-a+1 a3+a2+a+1 |
                                     | 0 0 0 1 -a3+a2+a-1 a3-a       a3-a2-a-1 |
                                                  3    2   3    2           3    2                   2       3    2                            3    2             3    2           3    2                           3    2           3       3    2
                ParityCheckRows => {{1, 0, 0, 0, a  - a , a  + a  - a - 1, a  + a }, {0, 1, 0, 0, - a  - 1, a  - a  + a - 1, 1}, {0, 0, 1, 0, a  + a  + a + 1, - a  + a  - a + 1, a  + a  + a + 1}, {0, 0, 0, 1, - a  + a  + a - 1, a  - a, a  - a  - a - 1}}

o6 : LinearCode
i7 : C1 == C2

o7 = true

Ways to use this method: