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