<!-- 
  HAPPRIME - functions.xml.in
  Function documentation template file for HAPprime
  Paul Smith

  Copyright (C)  2007
  Paul Smith
  National University of Ireland Galway

  $Id: functions.xml.in 200 2008-02-05 14:29:47Z pas $
-->

<!-- ********************************************************** -->
<Chapter>
  <Heading>Function Reference</Heading>

  <Section>
    <Heading>Matrices as generators of a row space</Heading>

    <Package>HAPprime</Package> represents <M>\mathbb{F}G</M>-modules as
    vector spaces and makes use of standard &GAP; operations and datatypes to 
    store and manipulate them. There are a few particular variants of functions 
    that are not provided as part &GAP;, and they are described here.

    <#Include Label="SumIntersectionMatDestructive_manBaseMat">
    <#Include Label="SolutionMat_manBaseMat">
    <#Include Label="IsSameSubspace_manBaseMat">
    <#Include Label="PrintDimensionsMat_manBaseMat">

  </Section>

  <Section Label="FG modules">
    <Heading><M>\mathbb{F}G</M>-modules</Heading>


  </Section>

  <Section Label="FG module homomorphisms">
    <Heading><M>\mathbb{F}G</M>-module homomorphisms</Heading>



  </Section>

  <Section>
    <Heading>Resolutions</Heading>

    <#Include Label="ResolutionPrimePowerGroupGF_manResolution">
    <#Include Label="ExtendResolutionPrimePowerGroup_manResolution">

  </Section>

  <Section>
    <Heading>Poincaré Series</Heading>

    <#Include Label="PoincareSeriesAutoMem_manPoincare">

  </Section>

  <Section>
    <Heading>Ring structure</Heading>

    <#Include Label="ModPCohomologyRingPresentation_manRings">
    <#Include Label="PresentationOfGradedStructureConstantAlgebra_manRings">

  </Section>

  <Section>
    <Heading>Polynomials</Heading>

    <#Include Label="TermsOfPolynomial_manPolynomial">
    <#Include Label="UnivariateMonomialsOfMonomial_manPolynomial">
    <#Include Label="IndeterminateAndCoefficientOfUnivariateMonomial_manPolynomial">
    <#Include Label="ReduceIdeal_manPolynomial">
    <#Include Label="ReducePolynomialRingPresentation_manPolynomial">

  </Section>

  <Section>
    <Heading>Derivations</Heading>


  </Section>

  <Section>
    <Heading>Test functions</Heading>

    <#Include Label="Random2Group_manTest">
    <#Include Label="RandomModule_manTest">
    <#Include Label="TestResolutionPrimePowerGroup_manTest">
    <#Include Label="FindAllPoincare_manTest">

  </Section>

  <Section>
    <Heading>Miscellaneous functions</Heading>

    <#Include Label="InfoHAPprime_manMisc">
    <#Include Label="MakeHAPprimeDoc_manMisc">

  </Section>

</Chapter>


<!-- ********************************************************** -->
<Chapter>
  <Heading>Internal Function Reference</Heading>

  These are functions that are used internally in <Package>HAPprime</Package>.
  They should not be needed by users of the package, but may be useful to 
  developers and are provided for completeness

  <Section>
    <Heading>Matrices as <M>g</M>-generators of a row space</Heading>

    Both <K>FpGModuleGF</K> and <K>FpGModuleHomomorphismGF</K> store a matrix 
    whose rows are <M>g</M>-generators for a module vector space (the module and 
    the homomorphism's image respectively). The internal functions listed here
    provide common operations for dealing with these matrices.

    <#Include Label="HAPPRIME_GActMatrixColumns_manGenMatInt">
    <#Include Label="HAPPRIME_ExpandGeneratingRow_manGenMatInt">
    <#Include Label="HAPPRIME_ExpandGeneratingRows_manGenMatInt">
    <#Include Label="HAPPRIME_AddGeneratingRowToSemiEchelonBasisDestructive_manGenMatInt">
    <#Include Label="HAPPRIME_ReduceVectorDestructive_manGenMatInt">
    <#Include Label="HAPPRIME_ReduceGeneratorsOfModuleBySemiEchelonDestructive_manGenMatInt">
    <#Include Label="HAPPRIME_ReduceGeneratorsOfModuleByLeavingOneOut_manGenMatInt">
    <#Include Label="HAPPRIME_DisplayGeneratingRows_manGenMatInt">
    <#Include Label="HAPPRIME_GeneratingRowsBlockStructure_manGenMatInt">
    <#Include Label="HAPPRIME_DisplayGeneratingRowsBlocks_manGenMatInt">
    <#Include Label="HAPPRIME_IndependentGeneratingRows_manGenMatInt">
    <#Include Label="HAPPRIME_GactFGvector_manGenMatInt">
    <#Include Label="HAPPRIME_CoefficientsOfGeneratingRowsDestructive_manGenMatInt">
    <#Include Label="HAPPRIME_GenerateFromGeneratingRowsCoefficients_manGenMatInt">
    <#Include Label="HAPPRIME_RemoveZeroBlocks_manGenMatInt">
    <#Include Label="HAPPRIME_AddZeroBlocks_manGenMatInt">

  </Section>
  
  <Section>
    <Heading><M>\mathbb{F}G</M>-modules</Heading>

    Internal helper functions for <K>FpGModuleGFs</K>s.


  </Section>
  
  <Section>
    <Heading>Resolutions</Heading>

    Internal helper functions for building resolutions.


  </Section>
  
  <Section>
    <Heading>Miscellaneous</Heading>

    Miscellaneous internal helper functions.


  </Section>
  
</Chapter>

