Macaulay2 » Documentation
Packages » CodingTheory > LinearCode > linearCode > cyclicCode > quasiCyclicCode
next | previous | forward | backward | up | index | toc

quasiCyclicCode -- constructs a quasi-cyclic code

Synopsis

Description

We present below the ways in how a quasi-cyclic code $C$ can be defined.

a list is given

  • Usage:
    quasiCyclicCode(L)
  • Inputs:
  • Outputs:

L is a list of vectors. Every vector \(v_i\) in L generates a cyclic matrix $A_i$. Returns the quasi-cyclic code $C$ whose generator matrix is the concatenation of the matrices $A_i$.

i1 : F = GF(5);
i2 : L = apply(toList(1..2),j-> apply(toList(1..4),i-> random(F)));
i3 : L

o3 = {{-2, 0, 1, -2}, {0, 2, -2, -1}}

o3 : List
i4 : C2=quasiCyclicCode(L)

                                  4
o4 = LinearCode{AmbientModule => F                                                                                                                            }
                BaseField => F
                cache => CacheTable{}
                Code => image | -2 -2 1  0  0  -1 -2 2  |
                              | 0  -2 -2 1  2  0  -1 -2 |
                              | 1  0  -2 -2 -2 2  0  -1 |
                              | -2 1  0  -2 -1 -2 2  0  |
                GeneratorMatrix => | -2 0  1  -2 |
                                   | -2 -2 0  1  |
                                   | 1  -2 -2 0  |
                                   | 0  1  -2 -2 |
                                   | 0  2  -2 -1 |
                                   | -1 0  2  -2 |
                                   | -2 -1 0  2  |
                                   | 2  -2 -1 0  |
                Generators => {{-2, 0, 1, -2}, {-2, -2, 0, 1}, {1, -2, -2, 0}, {0, 1, -2, -2}, {0, 2, -2, -1}, {-1, 0, 2, -2}, {-2, -1, 0, 2}, {2, -2, -1, 0}}
                ParityCheckMatrix => 0
                ParityCheckRows => {}

o4 : LinearCode

a finite field and a list are given

L is a list of vectors, whose entries belong to the field F. Every vector \(v_i\) in L generates a cyclic matrix $A_i$. Returns the quasi-cyclic code $C$ whose generator matrix is the concatenation of the matrices $A_i$.

i5 : F = GF(5);
i6 : L = apply(toList(1..2),j-> apply(toList(1..4),i-> random(F)));
i7 : L

o7 = {{-2, -2, 0, 0}, {-2, 0, 2, -2}}

o7 : List
i8 : C2=quasiCyclicCode(F,L)

                                  4
o8 = LinearCode{AmbientModule => F                                                                                                                            }
                BaseField => F
                cache => CacheTable{}
                Code => image | -2 0  0  -2 -2 -2 2  0  |
                              | -2 -2 0  0  0  -2 -2 2  |
                              | 0  -2 -2 0  2  0  -2 -2 |
                              | 0  0  -2 -2 -2 2  0  -2 |
                GeneratorMatrix => | -2 -2 0  0  |
                                   | 0  -2 -2 0  |
                                   | 0  0  -2 -2 |
                                   | -2 0  0  -2 |
                                   | -2 0  2  -2 |
                                   | -2 -2 0  2  |
                                   | 2  -2 -2 0  |
                                   | 0  2  -2 -2 |
                Generators => {{-2, -2, 0, 0}, {0, -2, -2, 0}, {0, 0, -2, -2}, {-2, 0, 0, -2}, {-2, 0, 2, -2}, {-2, -2, 0, 2}, {2, -2, -2, 0}, {0, 2, -2, -2}}
                ParityCheckMatrix => 0
                ParityCheckRows => {}

o8 : LinearCode

Ways to use quasiCyclicCode :

For the programmer

The object quasiCyclicCode is a method function.