  
  
                                     [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
  
  
  -------------------------------------------------------
