[Next][Prev] [Right] [Left] [Up] [Index] [Root]

Constructing New Codes from Old

The operations described here produce a new code by modifying in some way the code words of a given code.

Subsections

Standard Constructions

DirectSum(C, D) : Code, Code -> Code
Given an [n_1, k_1] code C and an [n_2, k_2] code D, both over the same ring R, construct the direct sum of C and D. The direct sum consists of all vectors u|v, where u in C and v in D.
DirectProduct(C, D) : Code, Code -> Code
Given an [n_1, k_1] code C and an [n_2, k_2] code D, both over the same ring R, construct the direct product of C and D. The direct product has length n_1⋅n_2 and its generator matrix is the Kronecker product of the basis matrices of C and D.
ExtendCode(C) : Code -> Code
Given an [n, k, d] code C form a new code C' from C by adding the appropriate extra coordinate to each vector of C such that the sum of the coordinates of the extended vector is zero.
ExtendCode(C, n) : Code, RngIntElt -> Code
Return the code C extended n times.
PadCode(C, n) : Code, RngIntElt -> Code
Add n zeros to the end of each codeword of C.
PlotkinSum(C, D) : Code, Code -> Code
Given an [n, k_1] code C and an [n, k_2] code D, both over the same ring R, construct the direct sum of C and D. The Plotkin sum consists of all vectors u|u + v, where the vertical bar denotes concatenation of vectors.
PunctureCode(C, i) : Code, RngIntElt -> Code
Given an [n, k] code C, and an integer i, 1 <= i <= n, construct a new code C' by deleting the i-th coordinate from each code word of C.
PunctureCode(C, S) : Code, { RngIntElt } -> Code
Given an [n, k] code C and a set S of distinct integers { i_1, ..., i_r } each of which lies in the range [1, n], construct a new code C' by deleting the components i_1, ..., i_r from each code word of C.
ShortenCode(C, i) : Code, RngIntElt -> Code
Given an [n, k] code C and an integer i, 1 <= i <= n, construct a new code from C by selecting only those codewords of C having a zero as their i-th component and deleting the i-th component from these codewords. Thus, the resulting code will have length n - 1.
ShortenCode(C, S) : Code, { RngIntElt } -> Code
Given an [n, k] code C and a set S of distinct integers { i_1, ..., i_r}, each of which lies in the range [1, n], construct a new code from C by selecting only those codewords of C having zeros in each of the coordinate positions i_1, ..., i_r, and deleting these components. Thus, the resulting code will have length n - r.

Combining Codes

C1 cat C2 : Code,Code -> Code
Given codes C1 and C2, both defined over the same field R, return the concatenation C of C1 and C2. If A and B are the generator matrices of C1 and C2, respectively, the concatenation of C1 and C2 is the code with generator matrix whose rows consist of each row of A concatenated with each row of B.
CodeJuxtaposition(C1, C2) : Code,Code -> Code
Given an [n_1, k, d_1] code C1 and an [n_2, k, d_2] code C2 of the same pseudo-dimension, where both codes are defined over the same field R, the function returns a [n_1 + n_2, k, >= d_1 + d_2] code whose generator matrix is Diagonal(A, B), where A and B are the generator matrices for codes C1 and C2, respectively.
 [Next][Prev] [Right] [Left] [Up] [Index] [Root]