next | previous | forward | backward | up | top | index | toc | packages | Macaulay2 website
CodingTheory > LinearCode > LinearCode == LinearCode

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         2       3       3             3         3       3  
o4 = {{- a  + a  + a, - a  + 1, a  - 1, a  - a + 1, - a  - a, - a  - a, a  -
     ------------------------------------------------------------------------
               3    2   3                  2             3    2   3         
     a + 1}, {a  - a , a  - a + 1, a - 1, a  - a - 1, - a  + a , a  - a - 1,
     ------------------------------------------------------------------------
        2               3         3    2             3    2           2     
     - a  - a - 1}, {- a  - a, - a  - a  - a + 1, - a  + a  + a - 1, a  + 1,
     ------------------------------------------------------------------------
      3    2             3    2             2
     a  - a  + a + 1, - a  - a  - a + 1, - a  + a}}

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

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

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

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

o6 : LinearCode
i7 : C1 == C2

o7 = true

Ways to use this method: