[1X[5XGUAVA[0X[0X [1XA [5XGAP[0X4 Package for computing with error-correcting codes  [0X Version 3.9 December 18, 2008 Jasper Cramwinckel Erik Roijackers Reinald Baart Eric Minkes, Lea Ruscio Robert L Miller, Tom Boothby Cen (``CJ'') Tjhai David Joyner (Maintainer), Robert L Miller, Email: [7Xmailto:rlm@robertlmiller.com[0X Cen (``CJ'') Tjhai Email: [7Xmailto:cen.tjhai@plymouth.ac.uk[0X Homepage: [7Xhttp://www.plymouth.ac.uk/staff/ctjhai[0X David Joyner (Maintainer), Email: [7Xmailto:wdjoyner@gmail.com[0X Homepage: [7Xhttp://sage.math.washington.edu/home/wdj/guava/[0X ------------------------------------------------------- [1XCopyright[0X [5XGUAVA[0X: © The GUAVA Group: 1992-2003 Jasper Cramwinckel, Erik Roijackers,Reinald Baart, Eric Minkes, Lea Ruscio (for the tex version), Jeffrey Leon © 2004 David Joyner, Cen Tjhai, Jasper Cramwinckel, Erik Roijackers, Reinald Baart, Eric Minkes, Lea Ruscio. © 2007 Robert L Miller, Tom Boothby [5XGUAVA[0X is released under the GNU General Public License (GPL). [5XGUAVA[0X is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. [5XGUAVA[0X is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with [5XGUAVA[0X; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA For more details, see [7Xhttp://www.fsf.org/licenses/gpl.html[0X. For many years [5XGUAVA[0X has been released along with the ``backtracking'' C programs of J. Leon. In one of his *.c files the following statements occur: ``Copyright (C) 1992 by Jeffrey S. Leon. This software may be used freely for educational and research purposes. Any other use requires permission from the author.'' The following should now be appended: ``I, Jeffrey S. Leon, agree to license all the partition backtrack code which I have written under the GPL (www.fsf.org) as of this date, April 17, 2007.'' [5XGUAVA[0X documentation: © Jasper Cramwinckel, Erik Roijackers,Reinald Baart, Eric Minkes, Lea Ruscio (for the tex version), David Joyner, Cen Tjhai, Jasper Cramwinckel, Erik Roijackers, Reinald Baart, Eric Minkes, Lea Ruscio. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". ------------------------------------------------------- [1XAcknowledgements[0X [5XGUAVA[0X was originally written by Jasper Cramwinckel, Erik Roijackers, and Reinald Baart in the early-to-mid 1990's as a final project during their study of Mathematics at the Delft University of Technology, Department of Pure Mathematics, under the direction of Professor Juriaan Simonis. This work was continued in Aachen, at Lehrstuhl D fur Mathematik. In version 1.3, new functions were added by Eric Minkes, also from Delft University of Technology. JC, ER and RB would like to thank the GAP people at the RWTH Aachen for their support, A.E. Brouwer for his advice and J. Simonis for his supervision. The GAP 4 version of [5XGUAVA[0X (versions 1.4 and 1.5) was created by Lea Ruscio and (since 2001, starting with version 1.6) is currently maintained by David Joyner, who (with the help of several students) has added several new functions. Starting with version 2.7, the ``best linear code'' tables have been updated. For further details, see the CHANGES file in the [5XGUAVA[0X directory, also available at [7Xhttp://sage.math.washington.edu/home/wdj/guava/CHANGES.guava[0X. This documentation was prepared with the [5XGAPDoc[0X package of Frank Lübeck and Max Neunhöffer. The conversion from TeX to [5XGAPDoc[0X's XML was done by David Joyner in 2004. Please send bug reports, suggestions and other comments about [5XGUAVA[0X to [7Xmailto:support@gap-system.org[0X. Currently known bugs and suggested [5XGUAVA[0X projects are listed on the bugs and projects web page [7Xhttp://sage.math.washington.edu/home/wdj/guava/guava2do.html[0X. Older releases and further history can be found on the [5XGUAVA[0X web page [7Xhttp://sage.math.washington.edu/home/wdj/guava/[0X. [13XContributors[0X: Other than the authors listed on the title page, the following people have contributed code to the [5XGUAVA[0X project: Alexander Hulpke, Steve Linton, Frank Lübeck, Aron Foster, Wayne Irons, Clifton (Clipper) Lennon, Jason McGowan, Shuhong Gao, Greg Gamble. For documentation on Leon's programs, see the src/leon/doc subdirectory of [5XGUAVA[0X. ------------------------------------------------------- [1XContent (guava)[0X 1. Introduction 1.1 Introduction to the [5XGUAVA[0X package 1.2 Installing [5XGUAVA[0X 1.3 Loading [5XGUAVA[0X 2. Coding theory functions in GAP 2.1 Distance functions 2.1-1 AClosestVectorCombinationsMatFFEVecFFE 2.1-2 AClosestVectorComb..MatFFEVecFFECoords 2.1-3 DistancesDistributionMatFFEVecFFE 2.1-4 DistancesDistributionVecFFEsVecFFE 2.1-5 WeightVecFFE 2.1-6 DistanceVecFFE 2.2 Other functions 2.2-1 ConwayPolynomial 2.2-2 RandomPrimitivePolynomial 3. Codewords 3.1 Construction of Codewords 3.1-1 Codeword 3.1-2 CodewordNr 3.1-3 IsCodeword 3.2 Comparisons of Codewords 3.2-1 = 3.3 Arithmetic Operations for Codewords 3.3-1 + 3.3-2 - 3.3-3 + 3.4 Functions that Convert Codewords to Vectors or Polynomials 3.4-1 VectorCodeword 3.4-2 PolyCodeword 3.5 Functions that Change the Display Form of a Codeword 3.5-1 TreatAsVector 3.5-2 TreatAsPoly 3.6 Other Codeword Functions 3.6-1 NullWord 3.6-2 DistanceCodeword 3.6-3 Support 3.6-4 WeightCodeword 4. Codes 4.1 Comparisons of Codes 4.1-1 = 4.2 Operations for Codes 4.2-1 + 4.2-2 * 4.2-3 * 4.2-4 InformationWord 4.3 Boolean Functions for Codes 4.3-1 in 4.3-2 IsSubset 4.3-3 IsCode 4.3-4 IsLinearCode 4.3-5 IsCyclicCode 4.3-6 IsPerfectCode 4.3-7 IsMDSCode 4.3-8 IsSelfDualCode 4.3-9 IsSelfOrthogonalCode 4.3-10 IsDoublyEvenCode 4.3-11 IsSinglyEvenCode 4.3-12 IsEvenCode 4.3-13 IsSelfComplementaryCode 4.3-14 IsAffineCode 4.3-15 IsAlmostAffineCode 4.4 Equivalence and Isomorphism of Codes 4.4-1 IsEquivalent 4.4-2 CodeIsomorphism 4.4-3 AutomorphismGroup 4.4-4 PermutationAutomorphismGroup 4.5 Domain Functions for Codes 4.5-1 IsFinite 4.5-2 Size 4.5-3 LeftActingDomain 4.5-4 Dimension 4.5-5 AsSSortedList 4.6 Printing and Displaying Codes 4.6-1 Print 4.6-2 String 4.6-3 Display 4.6-4 DisplayBoundsInfo 4.7 Generating (Check) Matrices and Polynomials 4.7-1 GeneratorMat 4.7-2 CheckMat 4.7-3 GeneratorPol 4.7-4 CheckPol 4.7-5 RootsOfCode 4.8 Parameters of Codes 4.8-1 WordLength 4.8-2 Redundancy 4.8-3 MinimumDistance 4.8-4 MinimumDistanceLeon 4.8-5 MinimumWeight 4.8-6 DecreaseMinimumDistanceUpperBound 4.8-7 MinimumDistanceRandom 4.8-8 CoveringRadius 4.8-9 SetCoveringRadius 4.9 Distributions 4.9-1 MinimumWeightWords 4.9-2 WeightDistribution 4.9-3 InnerDistribution 4.9-4 DistancesDistribution 4.9-5 OuterDistribution 4.10 Decoding Functions 4.10-1 Decode 4.10-2 Decodeword 4.10-3 GeneralizedReedSolomonDecoderGao 4.10-4 GeneralizedReedSolomonListDecoder 4.10-5 BitFlipDecoder 4.10-6 NearestNeighborGRSDecodewords 4.10-7 NearestNeighborDecodewords 4.10-8 Syndrome 4.10-9 SyndromeTable 4.10-10 StandardArray 4.10-11 PermutationDecode 4.10-12 PermutationDecodeNC 5. Generating Codes 5.1 Generating Unrestricted Codes 5.1-1 ElementsCode 5.1-2 HadamardCode 5.1-3 ConferenceCode 5.1-4 MOLSCode 5.1-5 RandomCode 5.1-6 NordstromRobinsonCode 5.1-7 GreedyCode 5.1-8 LexiCode 5.2 Generating Linear Codes 5.2-1 GeneratorMatCode 5.2-2 CheckMatCodeMutable 5.2-3 CheckMatCode 5.2-4 HammingCode 5.2-5 ReedMullerCode 5.2-6 AlternantCode 5.2-7 GoppaCode 5.2-8 GeneralizedSrivastavaCode 5.2-9 SrivastavaCode 5.2-10 CordaroWagnerCode 5.2-11 FerreroDesignCode 5.2-12 RandomLinearCode 5.2-13 OptimalityCode 5.2-14 BestKnownLinearCode 5.3 Gabidulin Codes 5.3-1 GabidulinCode 5.3-2 EnlargedGabidulinCode 5.3-3 DavydovCode 5.3-4 TombakCode 5.3-5 EnlargedTombakCode 5.4 Golay Codes 5.4-1 BinaryGolayCode 5.4-2 ExtendedBinaryGolayCode 5.4-3 TernaryGolayCode 5.4-4 ExtendedTernaryGolayCode 5.5 Generating Cyclic Codes 5.5-1 GeneratorPolCode 5.5-2 CheckPolCode 5.5-3 RootsCode 5.5-4 BCHCode 5.5-5 ReedSolomonCode 5.5-6 ExtendedReedSolomonCode 5.5-7 QRCode 5.5-8 QQRCodeNC 5.5-9 QQRCode 5.5-10 FireCode 5.5-11 WholeSpaceCode 5.5-12 NullCode 5.5-13 RepetitionCode 5.5-14 CyclicCodes 5.5-15 NrCyclicCodes 5.5-16 QuasiCyclicCode 5.5-17 CyclicMDSCode 5.5-18 FourNegacirculantSelfDualCode 5.5-19 FourNegacirculantSelfDualCodeNC 5.6 Evaluation Codes 5.6-1 EvaluationCode 5.6-2 GeneralizedReedSolomonCode 5.6-3 GeneralizedReedMullerCode 5.6-4 ToricPoints 5.6-5 ToricCode 5.7 Algebraic geometric codes 5.7-1 AffineCurve 5.7-2 AffinePointsOnCurve 5.7-3 GenusCurve 5.7-4 GOrbitPoint 5.7-5 DivisorOnAffineCurve 5.7-6 DivisorAddition 5.7-7 DivisorDegree 5.7-8 DivisorNegate 5.7-9 DivisorIsZero 5.7-10 DivisorsEqual 5.7-11 DivisorGCD 5.7-12 DivisorLCM 5.7-13 RiemannRochSpaceBasisFunctionP1 5.7-14 DivisorOfRationalFunctionP1 5.7-15 RiemannRochSpaceBasisP1 5.7-16 MoebiusTransformation 5.7-17 ActionMoebiusTransformationOnFunction 5.7-18 ActionMoebiusTransformationOnDivisorP1 5.7-19 IsActionMoebiusTransformationOnDivisorDefinedP1 5.7-20 DivisorAutomorphismGroupP1 5.7-21 MatrixRepresentationOnRiemannRochSpaceP1 5.7-22 GoppaCodeClassical 5.7-23 EvaluationBivariateCode 5.7-24 EvaluationBivariateCodeNC 5.7-25 OnePointAGCode 5.8 Low-Density Parity-Check Codes 5.8-1 QCLDPCCodeFromGroup 6. Manipulating Codes 6.1 Functions that Generate a New Code from a Given Code 6.1-1 ExtendedCode 6.1-2 PuncturedCode 6.1-3 EvenWeightSubcode 6.1-4 PermutedCode 6.1-5 ExpurgatedCode 6.1-6 AugmentedCode 6.1-7 RemovedElementsCode 6.1-8 AddedElementsCode 6.1-9 ShortenedCode 6.1-10 LengthenedCode 6.1-11 SubCode 6.1-12 ResidueCode 6.1-13 ConstructionBCode 6.1-14 DualCode 6.1-15 ConversionFieldCode 6.1-16 TraceCode 6.1-17 CosetCode 6.1-18 ConstantWeightSubcode 6.1-19 StandardFormCode 6.1-20 PiecewiseConstantCode 6.2 Functions that Generate a New Code from Two or More Given Codes 6.2-1 DirectSumCode 6.2-2 UUVCode 6.2-3 DirectProductCode 6.2-4 IntersectionCode 6.2-5 UnionCode 6.2-6 ExtendedDirectSumCode 6.2-7 AmalgamatedDirectSumCode 6.2-8 BlockwiseDirectSumCode 6.2-9 ConstructionXCode 6.2-10 ConstructionXXCode 6.2-11 BZCode 6.2-12 BZCodeNC 7. Bounds on codes, special matrices and miscellaneous functions 7.1 Distance bounds on codes 7.1-1 UpperBoundSingleton 7.1-2 UpperBoundHamming 7.1-3 UpperBoundJohnson 7.1-4 UpperBoundPlotkin 7.1-5 UpperBoundElias 7.1-6 UpperBoundGriesmer 7.1-7 IsGriesmerCode 7.1-8 UpperBound 7.1-9 LowerBoundMinimumDistance 7.1-10 LowerBoundGilbertVarshamov 7.1-11 LowerBoundSpherePacking 7.1-12 UpperBoundMinimumDistance 7.1-13 BoundsMinimumDistance 7.2 Covering radius bounds on codes 7.2-1 BoundsCoveringRadius 7.2-2 IncreaseCoveringRadiusLowerBound 7.2-3 ExhaustiveSearchCoveringRadius 7.2-4 GeneralLowerBoundCoveringRadius 7.2-5 GeneralUpperBoundCoveringRadius 7.2-6 LowerBoundCoveringRadiusSphereCovering 7.2-7 LowerBoundCoveringRadiusVanWee1 7.2-8 LowerBoundCoveringRadiusVanWee2 7.2-9 LowerBoundCoveringRadiusCountingExcess 7.2-10 LowerBoundCoveringRadiusEmbedded1 7.2-11 LowerBoundCoveringRadiusEmbedded2 7.2-12 LowerBoundCoveringRadiusInduction 7.2-13 UpperBoundCoveringRadiusRedundancy 7.2-14 UpperBoundCoveringRadiusDelsarte 7.2-15 UpperBoundCoveringRadiusStrength 7.2-16 UpperBoundCoveringRadiusGriesmerLike 7.2-17 UpperBoundCoveringRadiusCyclicCode 7.3 Special matrices in [5XGUAVA[0X 7.3-1 KrawtchoukMat 7.3-2 GrayMat 7.3-3 SylvesterMat 7.3-4 HadamardMat 7.3-5 VandermondeMat 7.3-6 PutStandardForm 7.3-7 IsInStandardForm 7.3-8 PermutedCols 7.3-9 VerticalConversionFieldMat 7.3-10 HorizontalConversionFieldMat 7.3-11 MOLS 7.3-12 IsLatinSquare 7.3-13 AreMOLS 7.4 Some functions related to the norm of a code 7.4-1 CoordinateNorm 7.4-2 CodeNorm 7.4-3 IsCoordinateAcceptable 7.4-4 GeneralizedCodeNorm 7.4-5 IsNormalCode 7.5 Miscellaneous functions 7.5-1 CodeWeightEnumerator 7.5-2 CodeDistanceEnumerator 7.5-3 CodeMacWilliamsTransform 7.5-4 CodeDensity 7.5-5 SphereContent 7.5-6 Krawtchouk 7.5-7 PrimitiveUnityRoot 7.5-8 PrimitivePolynomialsNr 7.5-9 IrreduciblePolynomialsNr 7.5-10 MatrixRepresentationOfElement 7.5-11 ReciprocalPolynomial 7.5-12 CyclotomicCosets 7.5-13 WeightHistogram 7.5-14 MultiplicityInList 7.5-15 MostCommonInList 7.5-16 RotateList 7.5-17 CirculantMatrix 7.6 Miscellaneous polynomial functions 7.6-1 MatrixTransformationOnMultivariatePolynomial 7.6-2 DegreeMultivariatePolynomial 7.6-3 DegreesMultivariatePolynomial 7.6-4 CoefficientMultivariatePolynomial 7.6-5 SolveLinearSystem 7.6-6 GuavaVersion 7.6-7 ZechLog 7.6-8 CoefficientToPolynomial 7.6-9 DegreesMonomialTerm 7.6-10 DivisorsMultivariatePolynomial 7.7 GNU Free Documentation License -------------------------------------------------------