Quasi-Cyclic Codes
Quasi-cyclic codes are a subtype of LinearCode and inherit its methods. While quasi-cyclic codes may be seen as generalizations of cyclic codes, here they are treated as independent topics.
Constructors
CodingTheory.QuasiCyclicCode — TypeQuasiCyclicCode(A::MatElem{T}, parity::Bool=false) where T <: ResElemReturn the quasi-cycle code specified by the matrix A of polynomial circulant generators. If the optional paramater parity is set to true, the input is used to construct the parity-check matrix.
QuasiCyclicCode(v::Vector{fq_nmod_mat}, l::Int, circ_gens::Bool, parity::Bool=false)Return the quasi-cyclic code of index l generated by right-bit shifts of size l of the generator vectors v. If circ_gens is true, the vectors are taken to be (column) generators for the circulant matrices instead of generator vectors for the code. If the optional paramater parity is set to true, the input is used to construct the parity-check matrix.
Notes
- If
circ_gensisfalse, then the length of the code isncols(v[1])and must be divisible byl. - If
circ_gensistrue, then the length of the code isncols(v[1]) * l. Circulant matrices are stacked in rows of lengthl, solmust dividelength(v).
QuasiCyclicCode(v::fq_nmod_mat, l::Int, parity::Bool=false)Return the quasi-cyclic code of index l generated by right-bit shifts of size l of the generator vector v. If the optional paramater parity is set to true, the input is used to construct the parity check matrix.
QuasiCyclicCode(v::Vector{fq_nmod_poly}, n::Int, l::Int, parity::Bool=false)Return the quasi-cyclic code of index l whose circulants are defined by the generator polynomials v. If the optional paramater parity is set to true, the input is used to construct the parity check matrix.
QuasiCyclicCode(v::Vector{AbstractCyclicCode}, l::Int, parity::Bool=false)Return the quasi-cyclic code of index l whose circulants are determined by the cyclic codes in v. If the optional paramater parity is set to true, the input is used to construct the parity check matrix.
Attributes
Hecke.index — Functionindex(C::AbstractQuasiCyclicCode)Return the index of the quasi-cyclic code.
CodingTheory.expansion_factor — Functionexpansion_factor(C::AbstractQuasiCyclicCode)Return the expansion factor of the quasi-cycle code C.
CodingTheory.is_single_generator — Functionis_single_generator(C::AbstractQuasiCyclicCode)Return true if C is a single-generator quasi-cyclic code.
CodingTheory.polynomial_matrix — Functionpolynomial_matrix(C::AbstractQuasiCyclicCode)Return the polynomial matrix used to define the code.
Use polynomial_matrix_type to determine if specifies the generator or parity-check matrix.
CodingTheory.polynomial_matrix_type — Functionpolynomial_matrix_type(C::AbstractQuasiCyclicCode)Return 'G' if the polynomial matrix of C specifies the generator or parity-check matrix.
The type parameter is either :G or :H, specifying whether the polynomial matrix represents the generator or parity-check matrix.
CodingTheory.type — Functiontype(C::AbstractQuasiCyclicCode)Return the type of the quasi-cycle code C.
type(W::WeightEnumerator)Returns the type of the weight enumerator W.
Methods
The following are not computed and stored at the time of construction and must be computed by using these methods.
CodingTheory.weight_matrix — Functionbase_matrix(A::MatElem{T}) where T <: ResElem
protograph_matrix(A::MatElem{T}) where T <: ResElem
weight_matrix(A::MatElem{T}) where T <: ResElemReturn the base/protograph/weight matrix of A.
CodingTheory.noncirculant_generator_matrix — Functionnoncirculant_generator_matrix(C::AbstractQuasiCyclicCode)Return the non-circulant form of the generator matrix for the quasi-cyclic code C if the polynomial matrix specifies the generator matrix; otherwise, return missing.
CodingTheory.noncirculant_parity_check_matrix — Functionnoncirculant_parity_check_matrix(C::AbstractQuasiCyclicCode)Return the non-circulant form of the parity-check matrix for the quasi-cyclic code C if the polynomial matrix specifies the parity-check matrix; otherwise, return missing.
Hecke.generators — Functiongenerators(C::AbstractQuasiCyclicCode)Return the generators of the quasi-cyclic code.
CodingTheory.circulants — Functioncirculants(C::AbstractQuasiCyclicCode)Return the circulant matrices of the quasi-cyclic code.