Utilies

AbstractAlgebra.liftMethod
lift(A::MatElem{T}, type::Symbol=:col) where T <: ResElem

Return the matrix whose residue polynomial elements are converted to circulant matrices over the base field.

source
AbstractAlgebra.liftMethod
lift(A::MatElem{T}, type::Symbol=:col) where T <: CTGroupAlgebra

Return the matrix whose group algebra elements are converted to circulant matrices over the base field.

source
Base.copyMethod
copy(C::T) where T <: AbstractCode

Returns a copy of the code C.

source
CodingTheory.:⊕Method
⊕(A::CTMatrixTypes, B::CTMatrixTypes)
direct_sum(A::CTMatrixTypes, B::CTMatrixTypes)

Return the direct sum of the two matrices A and B.

source
CodingTheory.Hamming_distanceMethod
Hamming_distance(u::T, v::T) where T <: Union{CTMatrixTypes, Vector{S}} where S <: Integer
distance(u::T, v::T) where T <: Union{CTMatrixTypes, Vector{S}} where S <: Integer
dist(u::T, v::T) where T <: Union{CTMatrixTypes, Vector{S}} where S <: Integer

Return the Hamming distance between u and v.

source
CodingTheory.Hamming_weightMethod
Hamming_weight(v::T) where T <: Union{CTMatrixTypes, Vector{S}} where S <: Integer
weight(v::T) where T <: Union{CTMatrixTypes, Vector{S}} where S <: Integer
wt(v::T) where T <: Union{CTMatrixTypes, Vector{S}} where S <: Integer

Return the Hamming weight of v.

source
CodingTheory.dual_basisMethod
dual_basis(E::FqNmodFiniteField, F::FqNmodFiniteField, basis::Vector{fq_nmod})
complementary_basis(E::FqNmodFiniteField, F::FqNmodFiniteField, basis::Vector{fq_nmod})

Return the dual (complentary) basis of basis for the extension E/F.

source
CodingTheory.expand_matrixMethod
expand_matrix(M::CTMatrixTypes, K::FqNmodFiniteField, β::Vector{fq_nmod})

Return the matrix constructed by expanding the elements of M to the subfield K using the basis β for the base ring of M over K.

source
CodingTheory.is_basisMethod
is_basis(E::FqNmodFiniteField, F::FqNmodFiniteField, basis::Vector{fq_nmod})

Return true and the dual (complementary) basis if basis is a basis for E/F, otherwise return false, missing.

source
CodingTheory.is_normal_basisMethod
is_normal_basis(E::FqNmodFiniteField, F::FqNmodFiniteField, basis::Vector{fq_nmod})

Return true if basis is a normal basis for E/F.

source
CodingTheory.is_triorthogonalFunction
is_triorthogonal(G::CTMatrixTypes, verbose::Bool=false)
is_triorthogonal(G::Matrix{Int}, verbose::Bool=false)

Return true if the binary matrix G is triorthogonal.

Notes

  • If the optional parameter verbos is set to true, the first pair or triple of non-orthogonal rows will be identified on the console.
source
CodingTheory.is_valid_bipartitionMethod
is_valid_bipartition(G::SimpleGraph{Int}, left::Vector{Int}, right::Vector{Int})

Return true if the vertices indexed by left and right form a valid bipartition for G.

source
CodingTheory.primitive_basisMethod
primitive_basis(E::FqNmodFiniteField, F::FqNmodFiniteField)

Return a primitive basis for E/F and its dual (complementary) basis.

source
CodingTheory.pseudoinverseMethod
pseudoinverse(M::CTMatrixTypes)

Return the pseudoinverse of a stabilizer matrix M over a quadratic extension.

Notes

  • This is not the Penrose-Moore pseudoinverse.
source
CodingTheory.row_supportsMethod

" row_supports(M::CTMatrixTypes)

Returns a vector where the ith entry lists the indices of the nonzero entries of M[i, :]

source
CodingTheory.row_supports_symplecticMethod

" rowsupportssymplectic(M::CTMatrixTypes)

Returns a vector where the ith entry is a 2-tuple of lists with the indices of the nonzero X and Z entries of M[i, :]

source
CodingTheory.strongly_lower_triangular_reductionMethod
strongly_lower_triangular_reduction(A::CTMatrixTypes)

Return a strongly lower triangular basis for the kernel of A and a unit vector basis for the complement of the image of transpose(A).

  • Note
  • This implements Algorithm 1 from https://doi.org/10.48550/arXiv.2204.10812
source
CodingTheory.verify_dual_basisMethod
verify_dual_basis(E::FqNmodFiniteField, F::FqNmodFiniteField, basis::Vector{fq_nmod}, dual_basis::Vector{fq_nmod})
verify_complementary_basis(E::FqNmodFiniteField, F::FqNmodFiniteField, basis::Vector{fq_nmod}, dual_basis::Vector{fq_nmod})

Return true if basis is the dual of dual_basis for E/F, otherwise return false.

source
CodingTheory.wtMethod
wt(f::CTPolyRingElem)

Return the number of nonzero coefficients of the polynomial f.

source
Hecke.:⊗Method
⊗(A::CTMatrixTypes, B::CTMatrixTypes)
kron(A::CTMatrixTypes, B::CTMatrixTypes)
tensor_product(A::CTMatrixTypes, B::CTMatrixTypes)
kronecker_product(A::CTMatrixTypes, B::CTMatrixTypes)

Return the Kronecker product of the two matrices A and B.

source
LinearAlgebra.trFunction
tr(x::fq_nmod, K::FqNmodFiniteField, verify::Bool=false)

Return the relative trace of x from its base field to the field K.

Notes

  • If the optional parameter verify is set to true, the two fields are checked for compatibility.
source