65.109 Code Records

Like other GAP structures, codes are represented by records that contain important information about them. Creating such a code record is Generating Cyclic Codes. It is possible to create one by hand, though this is not recommended.

Once a code record is created you may add record components to it but it is not advisable to alter information already present, because that may make the code record inconsistent.

Code records must always contain the components isCode, isDomain, operations and one of the identification components elements, generatorMat, checkMat, generatorPol, checkPol. The contents of all components of a code C are described below.

The following two components are the so-called category components used to identify the category this domain belongs to.

isDomain:

is always true as a code is a domain.

isCode:

is always true as a code is a code is a code...

The following components determine a code domain. These are the so-called identification components.

elements:

a list of elements of the code of type codeword. The field must be present for non-linear codes.

generatorMat and checkMat:

a matrix of full rank over a finite field. Neither can exist for non-linear codes. Either one or both must be present for linear codes.

generatorPol and checkPol:

a polynomial with coefficients in a finite field. Neither can exist for non-cyclic codes. Either one or both must be present for cyclic codes.

The following components contain basic information about the code.

name:

contains a short description of the code. See Print and String.

history:

is a list of strings, containing the history of the code. The current name of the code is excluded in the list, so that if the minimum distance is calculated, it can be included in the history. Each time the code is altered by a manipulating function, one or more strings are added to this list. See Display.

baseField:

the finite field of the codewords of C. See Field.

wordLength:

is an integer specifying the word length of each codeword of C. See WordLength.

size:

is an integer specifying the size of C, being the number of codewords that C has. See Size.

The following components contain knowledge about the code C.

dimension:

is an integer specifying the dimension of C. The dimension is equal to the number of rows of the generator matrix. The field is invalid for unrestricted codes. See Dimension.

redundancy:

is an integer specifying the redundancy of C. The redundancy is equal to the number of rows of the parity check matrix. The field is invalid for unrestricted codes. See Redundancy.

lowerBoundMinimumDistance and upperBoundMinimumDistance:

contains a lower and upper bound on the minimum distance of the code. The exact minimum distance is known if the two values are equal. See MinimumDistance.

upperBoundOptimalMinimumDistance:

contains an upper bound for the minimum distance of an optimal code with the same parameters.

minimumWeightOfGenerators:

contains the minimum weight of the words in the generator matrix (if the code is linear) or in the generator polynomial (if the code is cyclic). The field is invalid for unrestricted codes.

designedDistance:

is an integer specifying the designed distance of a BCH code. See BCHCode.

weightDistribution:

is a list of integers containing the weight distribution of C. See WeightDistribution.

innerDistribution:

is a list of integers containing the inner distribution of C. This component may only be present if C is an unrestricted code. See InnerDistribution.

outerDistribution:

is a matrix containing the outer distribution, in which the first element of each row is an element of type codeword, and the second a list of integers. See OuterDistribution.

syndromeTable:

is a matrix containing the syndrome table, in which the first element of each row consists of two elements of type codeword. This component is invalid for unrestricted codes. See SyndromeTable.

boundsCoveringRadius:

is a list of integers specifying possible values for the covering radius. See CoveringRadius.

codeNorm:

is an integer specifying the norm of C. See CodeNorm.

The following components are true if the code C has the property, false if not, and are not present if it is unknown whether the code has the property or not.

isLinearCode:

is true if the code is linear. See IsLinearCode.

isCyclicCode:

is true if the code is cyclic. See IsCyclicCode.

isPerfectCode:

is true if C is a perfect code. See IsPerfectCode.

isSelfDualCode:

is true if C is equal to its dual code. See IsSelfDualCode.

isNormalCode:

is true if C is a normal code. See IsNormalCode.

isSelfComplementaryCode:

is true if C is a self complementary code. See IsSelfComplementaryCode.

isAffineCode:

is true if C is an affine code. See IsAffineCode.

isAlmostAffineCode:

is true if C is an almost affine code. See IsAlmostAffineCode.

The component specialDecoder contains a function that implements a for C specific algorithm for decoding. See Decode.

The component operations contains the operations record (see Domain Records and Dispatchers).

Previous Up Top Next
Index

GAP 3.4.4
April 1997