<Chapter><Heading> Miscellaneous</Heading>

<Table Align="|l|" >

<Row>
<Item>
<Index> SL2Z </Index>
<C>SL2Z(p) </C>
<C>SL2Z(1/m) </C>
<P/>

Inputs a prime <M>p</M> or the reciprocal <M>1/m</M> of  a 
 square free integer <M>m</M>. In the first case the function
 returns the conjugate <M>SL(2,Z)^P</M> of the special linear group <M>SL(2,Z)</M>
by the matrix <M>P=[[1,0],[0,p]]</M>. In the second case it returns the group <M>SL(2,Z[1/m])</M>. 

</Item>
</Row>


<Row>
<Item>
<Index> BigStepLCS </Index>
<C>BigStepLCS(G,n) </C>
<P/>

Inputs a group <M>G</M> and a positive integer <M>n</M>. 
It returns a subseries <M>G=L_1</M>&tgt;<M>L_2</M>&tgt;<M> \ldots L_k=1</M> of the lower central series of 
<M>G</M> such that <M>L_i/L_{i+1}</M> has order greater than <M>n</M>.
</Item>
</Row>


<Row>
<Item>
<Index> Classify </Index>
<C>Classify(L,Inv) </C>
<P/>

Inputs a list of objects <M>L</M> and a function <M>Inv</M> which
computes an invariant of each object. It returns a list of lists which classifies the objects of <M>L</M> according to the invariant..
</Item>
</Row>

<Row>
<Item>
<Index> RefineClassification </Index>
<C>RefineClassification(C,Inv) </C>
<P/>

Inputs a list <M>C:=Classify(L,OldInv)</M> and returns a refined classification according to the invariant <M>Inv</M>.
</Item>
</Row>




<Row>
<Item>
<Index> Compose(f,g)</Index>
<C>Compose(f,g) </C>
<P/>

Inputs two <M>FpG</M>-module homomorphisms <M>
f:M \longrightarrow N</M> and <M>g:L \longrightarrow M</M>
with <M>Source(f)=Target(g)</M> . 
It returns the composite homomorphism <M>fg:L \longrightarrow N</M> .
<P/>
This also applies to group homomorphisms <M>f,g</M>.
</Item>
</Row>
<Row>
<Item>
<Index> HAPcopyright</Index>
<C>HAPcopyright() </C>
<P/>

This function provides details of HAP'S GNU public copyright licence.
</Item>
</Row>
<Row>
<Item>
<Index> IsLieAlgebraHomomorphism</Index>
<C>IsLieAlgebraHomomorphism(f) </C>
<P/>

Inputs an object <M>f</M> and returns true if <M>f</M>
is a homomorphism <M>f:A \longrightarrow B</M>
of Lie algebras (preserving the Lie bracket).
</Item>
</Row>

<Row>
<Item>
<Index> IsSuperperfect</Index>
<C>IsSuperperfect(G) </C>
<P/>

Inputs a group <M>G</M> and returns "true" if  both the 
first and second integral homology of <M>G</M> is trivial. 
Otherwise, it returns "false". 
</Item>
</Row>

<Row>
<Item>
<Index>MakeHAPManual</Index>
<C>MakeHAPManual()</C>
<P/>
This function creates the manual for HAP from an XML file.
</Item>
</Row>

<Row>
<Item>
<Index> PermToMatrixGroup </Index>
<C>PermToMatrixGroup(G,n) </C>
<P/>

Inputs a permutation group <M>G</M> and its degree <M>n</M>. 
Returns a bijective homomorphism <M>f:G \longrightarrow M</M> where 
<M>M</M> is a group of permutation matrices.
</Item>
</Row>
<Row>
<Item>
<Index> SolutionsMatDestructive</Index>
<C>SolutionsMatDestructive(M,B) </C>
<P/>

Inputs an <M>m×n</M> matrix <M>M</M> and a <M>k×n</M> matrix 
<M>B</M> over a field. It returns a k×m matrix <M>S</M> satisfying 
<M>SM=B</M>.
<P/>
The function will leave matrix <M>M</M> unchanged but 
will probably change matrix <M>B</M>.
<P/>
(This is  a trivial rewrite of the standard GAP function 
<M>SolutionMatDestructive(</M>&tlt;<M>mat</M>&tgt;,&tlt;<M>vec</M>&tgt;) .) 
</Item>
</Row>

<Row>
<Item>
<Index> LinearHomomorphismsPersistenceMat</Index>
<C>LinearHomomorphismsPersistenceMat(L) </C>
<P/>
Inputs a composable sequence <M>L</M> of  vector space homomorphisms. It returns an integer matrix containing the dimensions of the images of the various composites. The sequence <M>L</M> is determined up to isomorphism by this matrix.
</Item>
</Row>


<Row>
<Item>
<Index> NormalSeriesToQuotientHomomorphisms</Index>
<C>NormalSeriesToQuotientHomomorphisms(L) </C>
<P/>
Inputs an (increasing or decreasing) chain <M>L</M> of normal subgroups in some group <M>G</M>. This <M>G</M> is the largest group in the chain. It
 returns the sequence of composable group homomorphisms <M>G/L[i] \rightarrow G/L[i+/-1]</M>. 
</Item>
</Row>



<Row>
<Item>
<Index> TestHap</Index>
<C>TestHap() </C>
<P/>

This runs a representative sample of HAP functions and checks to see that they produce the correct output.  
</Item>
</Row>

</Table>
</Chapter>


