  
  
                                    [1X [5XGUAVA[105X [101X
  
  
          [1X A [5XGAP[105X4 Package for computing with error-correcting codes   [101X
  
  
                                  Version 3.20
  
  
                                1 February 2025
  
  
                               Jasper Cramwinckel
  
                                Erik Roijackers
  
                                 Reinald Baart
  
                                  Eric Minkes
  
                                   Lea Ruscio
  
                                Robert L Miller
  
                                  Tom Boothby
  
                               Cen (``CJ'') Tjhai
  
                                  David Joyner
  
                            Joe Fields (Maintainer)
  
  
  
  Joe Fields (Maintainer)
      Email:    [7Xmailto:fieldsj1@southernct.edu[107X
      Homepage: [7Xhttp://giam.southernct.edu/[107X
      Address:  [33X[0;14YMathematics Department,[133X
                [33X[0;14YSouthern Connecticut State University,[133X
                [33X[0;14YNew Haven, CT,[133X
                [33X[0;14Y06515 USA.[133X
  
  
  
  -------------------------------------------------------
  [1XCopyright[101X
  [33X[0;0Y[5XGUAVA[105X:   ©   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 © 2009, 2012, 2016, 2018, 2022, 2025 Joe Fields[133X
  
  [33X[0;0Y[5XGUAVA[105X is released under the GNU General Public License (GPL).[133X
  
  [33X[0;0Y[5XGUAVA[105X  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.[133X
  
  [33X[0;0Y[5XGUAVA[105X  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.[133X
  
  [33X[0;0YYou should have received a copy of the GNU General Public License along with
  [5XGUAVA[105X; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
  Suite 330, Boston, MA 02111-1307 USA[133X
  
  [33X[0;0YFor more details, see [7Xhttps://www.fsf.org/licenses/gpl.html[107X.[133X
  
  [33X[0;0YFor  many  years  [5XGUAVA[105X  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.''[133X
  
  [33X[0;0Y[5XGUAVA[105X  documentation:  © Jasper Cramwinckel, Erik Roijackers, Reinald Baart,
  Eric Minkes, Lea Ruscio (for the tex version), Joe Fields, David Joyner, Cen
  Tjhai. 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".[133X
  
  
  -------------------------------------------------------
  [1XAcknowledgements[101X
  [33X[0;0Y[5XGUAVA[105X  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.[133X
  
  [33X[0;0YJC,  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.[133X
  
  [33X[0;0YThe  GAP 4 version of [5XGUAVA[105X (versions 1.4 and 1.5) was created by Lea Ruscio
  and  (from 2001, starting with version 1.6, to early 2009) was maintained by
  David  Joyner,  who  (with  the  help of several students) added several new
  functions.  Starting  with  version 2.7, the ``best linear code'' tables for
  binary codes have been updated. From 2009, starting with version 3.10, [5XGUAVA[105X
  has been maintained by Joe Fields. For further details, see the CHANGES file
  in       the       [5XGUAVA[105X       directory,       also       available      at
  [7Xhttps://gap-packages.github.io/guava/CHANGES.guava[107X.[133X
  
  [33X[0;0YThis  documentation was prepared with the [5XGAPDoc[105X package of Frank Lübeck and
  Max  Neunhöffer.  The  conversion from TeX to [5XGAPDoc[105X's XML was done by David
  Joyner in 2004.[133X
  
  [33X[0;0YPlease  send  bug  reports,  suggestions  and  other comments about [5XGUAVA[105X to
  [7Xmailto:support@gap-system.org[107X.  Currently  known  bugs  and  suggested [5XGUAVA[105X
  projects  are  listed  in  the  Issues  section  of  the  [5XGUAVA[105X GitHub page:
  [7Xhttps://github.com/gap-packages/guava/issues[107X.  Older  releases  and  further
  history      can      be     found     on     the     [5XGUAVA[105X     web     page
  [7Xhttps://gap-packages.github.io/guava/[107X.[133X
  
  [33X[0;0Y[13XContributors[113X: Other than the authors listed on the title page, the following
  people  have  contributed code to the [5XGUAVA[105X project: Alexander Hulpke, Steve
  Linton,  Frank  Lübeck,  Aron Foster, Wayne Irons, Clifton (Clipper) Lennon,
  Jason McGowan, Shuhong Gao, Greg Gamble and Jeffrey S. Leon.[133X
  
  [33X[0;0YFor  documentation  on Leon's programs, see the [11Xsrc/leon/doc[111X subdirectory of
  [5XGUAVA[105X.[133X
  
  
  -------------------------------------------------------
  
  
  [1XContents (guava)[101X
  
  1 [33X[0;0YIntroduction[133X
    1.1 [33X[0;0YIntroduction to the [5XGUAVA[105X package[133X
    1.2 [33X[0;0YInstalling [5XGUAVA[105X[133X
    1.3 [33X[0;0YLoading [5XGUAVA[105X[133X
  2 [33X[0;0YA First Tutorial in [5XGUAVA[105X[133X
    2.1 [33X[0;0YWorking with codewords[133X
    2.2 [33X[0;0YCalculations with codes[133X
  3 [33X[0;0YCodewords[133X
    3.1 [33X[0;0YConstruction of Codewords[133X
      3.1-1 Codeword
      3.1-2 CodewordNr
      3.1-3 IsCodeword
    3.2 [33X[0;0YComparisons of Codewords[133X
      3.2-1 \=
    3.3 [33X[0;0YArithmetic Operations for Codewords[133X
      3.3-1 \+
      3.3-2 \-
      3.3-3 \+
    3.4 [33X[0;0YFunctions that Convert Codewords to Vectors or Polynomials[133X
      3.4-1 VectorCodeword
      3.4-2 PolyCodeword
    3.5 [33X[0;0YFunctions that Change the Display Form of a Codeword[133X
      3.5-1 TreatAsVector
      3.5-2 TreatAsPoly
    3.6 [33X[0;0YOther Codeword Functions[133X
      3.6-1 NullWord
      3.6-2 DistanceCodeword
      3.6-3 Support
      3.6-4 WeightCodeword
  4 [33X[0;0YCodes[133X
    4.1 [33X[0;0YComparisons of Codes[133X
      4.1-1 \=
    4.2 [33X[0;0YOperations for Codes[133X
      4.2-1 \+
      4.2-2 \*
      4.2-3 \*
      4.2-4 InformationWord
    4.3 [33X[0;0YBoolean Functions for Codes[133X
      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 [33X[0;0YEquivalence and Isomorphism of Codes[133X
      4.4-1 IsEquivalent
      4.4-2 CodeIsomorphism
      4.4-3 AutomorphismGroup
      4.4-4 PermutationAutomorphismGroup
    4.5 [33X[0;0YDomain Functions for Codes[133X
      4.5-1 IsFinite
      4.5-2 Size
      4.5-3 LeftActingDomain
      4.5-4 Dimension
      4.5-5 AsSSortedList
    4.6 [33X[0;0YPrinting and Displaying Codes[133X
      4.6-1 Print
      4.6-2 String
      4.6-3 Display
      4.6-4 DisplayBoundsInfo
    4.7 [33X[0;0YGenerating (Check) Matrices and Polynomials[133X
      4.7-1 GeneratorMat
      4.7-2 CheckMat
      4.7-3 GeneratorPol
      4.7-4 CheckPol
      4.7-5 RootsOfCode
    4.8 [33X[0;0YParameters of Codes[133X
      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 [33X[0;0YDistributions[133X
      4.9-1 MinimumWeightWords
      4.9-2 WeightDistribution
      4.9-3 InnerDistribution
      4.9-4 DistancesDistribution
      4.9-5 OuterDistribution
    4.10 [33X[0;0YDecoding Functions[133X
      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 [33X[0;0YGenerating Codes[133X
    5.1 [33X[0;0YGenerating Unrestricted Codes[133X
      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 [33X[0;0YGenerating Linear Codes[133X
      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 [33X[0;0YGabidulin Codes[133X
      5.3-1 GabidulinCode
      5.3-2 EnlargedGabidulinCode
      5.3-3 DavydovCode
      5.3-4 TombakCode
      5.3-5 EnlargedTombakCode
    5.4 [33X[0;0YGolay Codes[133X
      5.4-1 BinaryGolayCode
      5.4-2 ExtendedBinaryGolayCode
      5.4-3 TernaryGolayCode
      5.4-4 ExtendedTernaryGolayCode
    5.5 [33X[0;0YGenerating Cyclic Codes[133X
      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 [33X[0;0YEvaluation Codes[133X
      5.6-1 EvaluationCode
      5.6-2 GeneralizedReedSolomonCode
      5.6-3 GeneralizedReedMullerCode
      5.6-4 ToricPoints
      5.6-5 ToricCode
    5.7 [33X[0;0YAlgebraic geometric codes[133X
      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 [33X[0;0YLow-Density Parity-Check Codes[133X
      5.8-1 QCLDPCCodeFromGroup
  6 [33X[0;0YManipulating Codes[133X
    6.1 [33X[0;0YFunctions that Generate a New Code from a Given Code[133X
      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 [33X[0;0YFunctions that Generate a New Code from Two or More Given Codes[133X
      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 [33X[0;0YBounds on codes, special matrices and miscellaneous functions[133X
    7.1 [33X[0;0YDistance bounds on codes[133X
      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 [33X[0;0YCovering radius bounds on codes[133X
      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 [33X[0;0YSpecial matrices in [5XGUAVA[105X[133X
      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 [33X[0;0YSome functions related to the norm of a code[133X
      7.4-1 CoordinateNorm
      7.4-2 CodeNorm
      7.4-3 IsCoordinateAcceptable
      7.4-4 GeneralizedCodeNorm
      7.4-5 IsNormalCode
    7.5 [33X[0;0YMiscellaneous functions[133X
      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 [33X[0;0YMiscellaneous polynomial functions[133X
      7.6-1 MatrixTransformationOnMultivariatePolynomial 
      7.6-2 DegreeMultivariatePolynomial
      7.6-3 DegreesMultivariatePolynomial
      7.6-4 SolveLinearSystem
      7.6-5 GuavaVersion
      7.6-6 ZechLog
      7.6-7 CoefficientToPolynomial
      7.6-8 DegreesMonomialTerm
      7.6-9 DivisorsMultivariatePolynomial
  8 [33X[0;0YCoding theory functions in GAP[133X
    8.1 [33X[0;0YDistance functions[133X
      8.1-1 AClosestVectorCombinationsMatFFEVecFFE
      8.1-2 AClosestVectorComb..MatFFEVecFFECoords
      8.1-3 DistancesDistributionMatFFEVecFFE
      8.1-4 DistancesDistributionVecFFEsVecFFE
      8.1-5 WeightVecFFE
      8.1-6 DistanceVecFFE
    8.2 [33X[0;0YOther functions[133X
      8.2-1 ConwayPolynomial
      8.2-2 RandomPrimitivePolynomial
  9 [33X[0;0YGNU Free Documentation License[133X
  
  
  [32X
