Product Codes

A MatrixProductCode combines constituent codes through a defining matrix: row $i$ of the defining matrix says how codewords of the $i$th constituent are mixed into each output block. The ordinary product and tensor-product constructions of two codes are in New codes from old.

CodingTheory.MatrixProductCode — Method
MatrixProductCode(
    C::Vector{<:AbstractLinearCode},
    A::Union{Nemo.FqMatrix, Nemo.fpMatrix, Hecke.SMat, SparseArrays.SparseMatrixCSC}
) -> MatrixProductCode

Return the matrix product code defined by the vector of linear codes C and matrix A. Evaluates lazily.

source
CodingTheory.RandomMatrixProductCode — Method
RandomMatrixProductCode(
    C::Vector{<:AbstractLinearCode},
    l::Int64
) -> MatrixProductCode

Return a random Matrix Product Code defined by the vector of linear codes C and a randomly generated full-rank s × l defining matrix A.

source
CodingTheory.constituent_codes — Method
constituent_codes(
    C::MatrixProductCode
) -> Vector{<:AbstractLinearCode}

Return the constituent linear codes used to construct the matrix product code.

source
CodingTheory.defining_matrix — Method
defining_matrix(
    C::MatrixProductCode
) -> Union{Nemo.FqMatrix, Nemo.fpMatrix, Hecke.SMat, SparseArrays.SparseMatrixCSC}

Return the defining matrix A of the matrix product code.

source