65.87 ExtendedCode

ExtendedCode( C [, i ] )

ExtendedCode extends the code C i times and returns the result. i is equal to 1 by default. Extending is done by adding a parity check bit after the last coordinate. The coordinates of all codewords now add up to zero. In the binary case, each codeword has even weight.

The word length increases by i. The size of the code remains the same. In the binary case, the minimum distance increases by one if it was odd. In other cases, that is not always true.

A cyclic code in general is no longer cyclic after extending.

    gap> C1 := HammingCode( 3, GF(2) );
    a linear [7,4,3]1 Hamming (3,2) code over GF(2)
    gap> C2 := ExtendedCode( C1 );
    a linear [8,4,4]2 extended code
    gap> IsEquivalent( C2, ReedMullerCode( 1, 3 ) );
    true
    gap> List( Elements( C2 ), WeightCodeword );
    [ 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8 ]
    gap> PuncturedCode( C2 ) = C1;
    true
    gap> C3 := EvenWeightSubcode( C1 );
    a linear [7,3,4]2..3 even weight subcode 

To undo extending, call PuncturedCode (see PuncturedCode). The function EvenWeightSubcode (see EvenWeightSubcode) also returns a related code with only even weights, but without changing its word length.

Previous Up Top Next
Index

GAP 3.4.4
April 1997