  
  
                                   [1X [5XHAPprime[105X [101X
  
  
                          [1X Datatypes reference manual [101X
  
  
                                  Version 0.6
  
  
                                  9 June 2011
  
  
                                   Paul Smith
  
  
  
  Paul Smith
      Email:    [7Xmailto:paul.smith@st-andrews.ac.uk[107X
      Homepage: [7Xhttp://www.cs.st-andrews.ac.uk/~pas[107X
      Address:  [33X[0;14YSchool of Computer Science,[133X
                [33X[0;14YUniversity of St Andrews[133X
                [33X[0;14YSt Andrews,[133X
                [33X[0;14YUK.[133X
  
  
  
  -------------------------------------------------------
  [1XCopyright[101X
  [33X[0;0Y© 2006-2011 Paul Smith[133X
  
  [33X[0;0Y[5XHAPprime[105X  is  released under the GNU General Public License (GPL). This file
  is  part  of  [5XHAPprime[105X, though as documentation it is released under the GNU
  Free                Documentation                License                (see
  [7Xhttp://www.gnu.org/licenses/licenses.html#FDL[107X).[133X
  
  [33X[0;0Y[5XHAPprime[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[5XHAPprime[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
  [5XHAPprime[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 [7Xhttp://www.fsf.org/licenses/gpl.html[107X.[133X
  
  
  -------------------------------------------------------
  [1XAcknowledgements[101X
  [33X[0;0Y[5XHAPprime[105X  was  developed  with  the  support  of  a  Marie Curie Transfer of
  Knowledge   grant  based  at  the  Department  of  Mathematics,  NUI  Galway
  (MTKD-CT-2006-042685)  and  is  maintained  with  the support of the HPC-GAP
  grant at the School of Computer Science, University of St Andrews.[133X
  
  
  -------------------------------------------------------
  
  
  [1XContents (HAPprime Datatypes)[101X
  
  1 [33X[0;0YIntroduction[133X
    1.1 [33X[0;0YInternal function reference[133X
  2 [33X[0;0YResolutions[133X
    2.1 [33X[0;0YThe [9XHAPResolution[109X datatype in [5XHAPprime[105X[133X
    2.2 [33X[0;0YImplementation: Constructing resolutions[133X
    2.3 [33X[0;0YResolution construction functions[133X
      2.3-1 LengthOneResolutionPrimePowerGroup
      2.3-2 LengthZeroResolutionPrimePowerGroup
    2.4 [33X[0;0YResolution data access functions[133X
      2.4-1 ResolutionLength
      2.4-2 ResolutionGroup
      2.4-3 ResolutionFpGModuleGF
      2.4-4 ResolutionModuleRank
      2.4-5 ResolutionModuleRanks
      2.4-6 BoundaryFpGModuleHomomorphismGF
      2.4-7 ResolutionsAreEqual
    2.5 [33X[0;0YExample: Computing and working with resolutions[133X
    2.6 [33X[0;0YMiscellaneous resolution functions[133X
      2.6-1 BestCentralSubgroupForResolutionFiniteExtension
  3 [33X[0;0Y[22XFG[122X-modules[133X
    3.1 [33X[0;0YThe [9XFpGModuleGF[109X datatype[133X
    3.2 [33X[0;0YImplementation details: Block echelon form[133X
      3.2-1 [33X[0;0YGenerating vectors and their block structure[133X
      3.2-2 [33X[0;0YMatrix echelon reduction and head elements[133X
      3.2-3 [33X[0;0YEchelon block structure and minimal generators[133X
      3.2-4 [33X[0;0YIntersection of two modules[133X
    3.3 [33X[0;0YConstruction functions[133X
      3.3-1 [33X[0;0YFpGModuleGF construction functions[133X
      3.3-2 FpGModuleFromFpGModuleGF
      3.3-3 MutableCopyModule
      3.3-4 CanonicalAction
      3.3-5 [33X[0;0YExample: Constructing a [9XFpGModuleGF[109X[133X
    3.4 [33X[0;0YData access functions[133X
      3.4-1 ModuleGroup
      3.4-2 ModuleGroupOrder
      3.4-3 ModuleAction
      3.4-4 ModuleActionBlockSize
      3.4-5 ModuleGroupAndAction
      3.4-6 ModuleCharacteristic
      3.4-7 ModuleField
      3.4-8 ModuleAmbientDimension
      3.4-9 AmbientModuleDimension
      3.4-10 DisplayBlocks
      3.4-11 [33X[0;0YExample: Accessing data about a [9XFpGModuleGF[109X[133X
    3.5 [33X[0;0YGenerator and vector space functions[133X
      3.5-1 ModuleGenerators
      3.5-2 ModuleGeneratorsAreMinimal
      3.5-3 ModuleGeneratorsAreEchelonForm
      3.5-4 ModuleIsFullCanonical
      3.5-5 ModuleGeneratorsForm
      3.5-6 ModuleRank
      3.5-7 ModuleVectorSpaceBasis
      3.5-8 ModuleVectorSpaceDimension
      3.5-9 [33X[0;0YMinimalGeneratorsModule[133X
      3.5-10 RadicalOfModule
      3.5-11 [33X[0;0YExample: Generators and basis vectors of a [9XFpGModuleGF[109X[133X
    3.6 [33X[0;0YBlock echelon functions[133X
      3.6-1 EchelonModuleGenerators
      3.6-2 ReverseEchelonModuleGenerators
      3.6-3 [33X[0;0YExample: Converting a [9XFpGModuleGF[109X to block echelon form[133X
    3.7 [33X[0;0YSum and intersection functions[133X
      3.7-1 [33X[0;0YDirectSumOfModules[133X
      3.7-2 DirectDecompositionOfModule
      3.7-3 IntersectionModules
      3.7-4 SumModules
      3.7-5 [33X[0;0YExample: Sum and intersection of [9XFpGModuleGF[109Xs[133X
    3.8 [33X[0;0YMiscellaneous functions[133X
      3.8-1 =
      3.8-2 [33X[0;0YIsModuleElement[133X
      3.8-3 IsSubModule
      3.8-4 RandomElement
      3.8-5 [33X[0;0YRandom Submodule[133X
  4 [33X[0;0Y[22XFG[122X-module homomorphisms[133X
    4.1 [33X[0;0YThe [9XFpGModuleHomomorphismGF[109X datatype[133X
    4.2 [33X[0;0YCalculating the kernel of a [22XFG[122X-module homorphism by splitting into two
    homomorphisms[133X
    4.3 [33X[0;0YCalculating the kernel of a [22XFG[122X-module homorphism by column reduction
    and partitioning[133X
    4.4 [33X[0;0YConstruction functions[133X
      4.4-1 [33X[0;0YFpGModuleHomomorphismGF construction functions[133X
      4.4-2 [33X[0;0YExample: Constructing a [9XFpGModuleHomomorphismGF[109X[133X
    4.5 [33X[0;0YData access functions[133X
      4.5-1 SourceModule
      4.5-2 TargetModule
      4.5-3 ModuleHomomorphismGeneratorMatrix
      4.5-4 DisplayBlocks
      4.5-5 DisplayModuleHomomorphismGeneratorMatrix
      4.5-6 DisplayModuleHomomorphismGeneratorMatrixBlocks
      4.5-7 [33X[0;0YExample: Accessing data about a [9XFpGModuleHomomorphismGF[109X[133X
    4.6 [33X[0;0YImage and kernel functions[133X
      4.6-1 [33X[0;0YImageOfModuleHomomorphism[133X
      4.6-2 [33X[0;0YPreImageRepresentativeOfModuleHomomorphism[133X
      4.6-3 KernelOfModuleHomomorphism
      4.6-4 [33X[0;0YExample: Kernel and Image of a [9XFpGModuleHomomorphismGF[109X[133X
  5 [33X[0;0YGeneral Functions[133X
    5.1 [33X[0;0YMatrices[133X
      5.1-1 SumIntersectionMatDestructive
      5.1-2 SolutionMat
      5.1-3 IsSameSubspace
      5.1-4 PrintDimensionsMat
      5.1-5 [33X[0;0YExample: matrices and vector spaces[133X
    5.2 [33X[0;0YGroups[133X
      5.2-1 [33X[0;0YHallSeniorNumber[133X
  6 [33X[0;0YInternal functions[133X
    6.1 [33X[0;0YMatrices as [22XG[122X-generators of a [22XFG[122X-module vector space[133X
      6.1-1 HAPPRIME_ValueOptionMaxFGExpansionSize
      6.1-2 HAPPRIME_KernelOfGeneratingRowsDestructive
      6.1-3 HAPPRIME_GActMatrixColumns
      6.1-4 HAPPRIME_ExpandGeneratingRow
      6.1-5 HAPPRIME_AddGeneratingRowToSemiEchelonBasisDestructive
      6.1-6 HAPPRIME_ReduceVectorDestructive
      6.1-7 [33X[0;0YHAPPRIME_ReduceGeneratorsOfModuleByXX[133X
      6.1-8 HAPPRIME_DisplayGeneratingRows
      6.1-9 HAPPRIME_GeneratingRowsBlockStructure
      6.1-10 HAPPRIME_DisplayGeneratingRowsBlocks
      6.1-11 HAPPRIME_IndependentGeneratingRows
      6.1-12 HAPPRIME_GactFGvector
      6.1-13 [33X[0;0YHAPPRIME_CoefficientsOfGeneratingRowsXX[133X
      6.1-14 [33X[0;0YHAPPRIME_GenerateFromGeneratingRowsCoefficientsXX[133X
      6.1-15 HAPPRIME_RemoveZeroBlocks
      6.1-16 HAPPRIME_AddZeroBlocks
    6.2 [33X[0;0Y[22XFG[122X-modules[133X
      6.2-1 HAPPRIME_DirectSumForm
      6.2-2 HAPPRIME_PrintModuleDescription
      6.2-3 [33X[0;0YHAPPRIME_ModuleGeneratorCoefficients[133X
      6.2-4 [33X[0;0YHAPPRIME_ModuleElementFromGeneratorCoefficients[133X
      6.2-5 HAPPRIME_MinimalGeneratorsVectorSpaceGeneratingRowsDestructive
      6.2-6 HAPPRIME_IsGroupAndAction
    6.3 [33X[0;0YResolutions[133X
      6.3-1 HAPPRIME_WordToVector
      6.3-2 HAPPRIME_VectorToWord
      6.3-3 HAPPRIME_BoundaryMatrices
      6.3-4 HAPPRIME_AddNextResolutionBoundaryMapMatNC
      6.3-5 HAPPRIME_CreateResolutionWithBoundaryMapMatsNC
    6.4 [33X[0;0YTest functions[133X
      6.4-1 HAPPRIME_SingularIsAvailable
      6.4-2 HAPPRIME_Random2Group
      6.4-3 HAPPRIME_TestResolutionPrimePowerGroup
  
  
  [32X
