Subcodes#

The Subcode Constructor#

sub<C | L>: Code, List -> Code#

Given a length \(n\) linear code \(C\) over \(R\), construct the subcode of \(C\), generated by the elements specified by the list \(L\), where \(L\) is a list of one or more items of the following types:

(a)

An element of \(C\);

(b)

A set or sequence of elements of \(C\);

(c)

A sequence of \(n\) elements of \(R\), defining an element of \(C\);

(d)

A set or sequence of sequences of type (c);

(e)

A subcode of \(C\);

(f)

A set or sequence of subcodes of \(C\).

Subcode(C, t): Code, RngIntElt -> Code#

Given a length \(n\) linear code \(C\) with \(k\) generators and an integer \(t\), \(1 \le t < k\), return a subcode of \(C\) of pseudo-dimension \(t\).

Subcode(C, S): Code, {RngIntElt} -> Code#

Given a length \(n\) linear code \(C\) with \(k\) generators and a set \(S\) of integers, each of which lies in the range \([1,k]\), return the subcode of \(C\) generated by the basis elements whose positions appear in \(S\).

Example: Subcode Galois Rings (ex-89c02d)#

We construct a subcode of a code over a Galois ring by multiplying each of its generators by a zero divisor.

> R<w> := GR(4,2);
> C := RandomLinearCode(R, 4, 2);
> C;
(4, 256, 3) Linear Code over GaloisRing(2, 2, 2)
Generator matrix:
[      1       0   w + 1 3*w + 2]
[      0       1 3*w + 1       1]
> #C;
256
>
> C1 := sub< C | 2*C.1, 2*C.2 >;
> C1;
(4, 16, 3) Linear Code over GaloisRing(2, 2, 2)
Generator matrix:
[      2       0 2*w + 2     2*w]
[      0       2 2*w + 2       2]
> #C1;
16

Run in calculator