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.
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.
CodingTheory.constituent_codes — Method
constituent_codes(
C::MatrixProductCode
) -> Vector{<:AbstractLinearCode}
Return the constituent linear codes used to construct the matrix product code.
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.