<Chapter><Heading> Poincare series</Heading>

<Section><Heading> &nbsp;</Heading>

<ManSection>

<Func Name="EfficientNormalSubgroups" Arg="G"/>

<Func Name="EfficientNormalSubgroups" Arg="G,k"/>
<Description>
<P/>
Inputs a prime-power group <M>G</M> and, optionally, a positive 
integer <M>k</M>. The default is <M>k=4</M>. The function returns a 
list of normal subgroups <M>N</M> in <M>G</M> such that the Poincare 
series for <M>G</M> equals 
the Poincare series for the direct product <M>(N \times (G/N))</M> up to degree <M>k</M>.
<P/><B>Examples:</B> <URL><Link>../tutorial/chap11.html</Link><LinkText>1</LinkText></URL>&nbsp; 

</Description>

























































































































</ManSection>
<ManSection>

<Func Name="ExpansionOfRationalFunction" Arg="f,n"/>
<Description>
<P/>

Inputs a positive integer <M>n</M> and a rational function 
<M>f(x)=p(x)/q(x)</M> where the degree of the polynomial <M>p(x)</M>
is less than that of <M>q(x)</M>. It returns a list 
<M>[a_0 , a_1 , a_2 , a_3 , \ldots ,a_n]</M> of the first <M>n+1</M>
coefficients of the infinite expansion
<P/>
<M>f(x) = a_0 + a_1x + a_2x^2 + a_3x^3 + \ldots </M>  .
<P/><B>Examples:</B> <URL><Link>../tutorial/chap11.html</Link><LinkText>1</LinkText></URL>&nbsp; 

</Description>

























































































































</ManSection>

<ManSection>

<Func Name="PoincareSeries" Arg="G,n"/>

<Func Name="PoincareSeries" Arg="R,n"/>

<Func Name="PoincareSeries" Arg="L,n"/>

<Func Name="PoincareSeries" Arg="G"/>
<Description>
<P/>

Inputs a finite <M>p</M>-group <M>G</M> and a positive integer <M>n</M>. 
It returns a quotient of polynomials <M>f(x)=P(x)/Q(x)</M> 
whose coefficient of <M>x^k</M> equals the rank of the vector space 
<M>H_k(G,Z_p)</M> for all <M>k</M> in the range <M>k=1</M> to <M>k=n</M>.  
(The second input variable can be omitted, in which case the 
function tries to choose a "reasonable" value for <M>n</M>. For <M>2</M>-groups the function PoincareSeriesLHS(G) can be used to produce an <M>f(x)</M> that
is correct in all degrees.)
<P/>

In place of the group <M>G</M> the function can also input 
(at least <M>n</M> terms of) a minimal mod <M>p</M> resolution 
<M>R</M> for <M>G</M>.
<P/>
Alternatively, the first input variable can be a list <M>L</M>
of integers. In this case the coefficient of <M>x^k</M> in <M>f(x)</M>
is equal to the <M>(k+1)</M>st term in the list.
<P/><B>Examples:</B> <URL><Link>../tutorial/chap7.html</Link><LinkText>1</LinkText></URL>&nbsp;,
<URL><Link>../tutorial/chap11.html</Link><LinkText>2</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutArithmetic.html</Link><LinkText>3</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutModPRings.html</Link><LinkText>4</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutPoincareSeries.html</Link><LinkText>5</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutPoincareSeriesII.html</Link><LinkText>6</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutIntro.html</Link><LinkText>7</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutTorAndExt.html</Link><LinkText>8</LinkText></URL>&nbsp; 

</Description>

























































































































</ManSection>

<ManSection>

<Func Name="PoincareSeriesPrimePart" Arg="G,p,n"/>
<Description>
<P/>

Inputs a finite group <M>G</M>, a prime <M>p</M>, and a positive integer 
<M>n</M>. It returns a quotient of polynomials 
<M>f(x)=P(x)/Q(x)</M> whose coefficient of <M>x^k</M> 
equals the rank of the vector space <M>H_k(G,Z_p)</M> 
for all <M>k</M> in the range <M>k=1</M> to <M>k=n</M>.
<P/>
The efficiency of this function needs to be improved.
<P/><B>Examples:</B> <URL><Link>../tutorial/chap7.html</Link><LinkText>1</LinkText></URL>&nbsp;,
<URL><Link>../www/SideLinks/About/aboutIntro.html</Link><LinkText>2</LinkText></URL>&nbsp; 

</Description>

























































































































</ManSection>

<ManSection>

<Var Name="PoincareSeriesLHS"/>
<Description>
<P/>

Inputs a finite <M>2</M>-group <M>G</M>
and returns a quotient of polynomials
<M>f(x)=P(x)/Q(x)</M> whose coefficient of <M>x^k</M>
equals the rank of the vector space <M>H_k(G,Z_2)</M>
for all <M>k</M>.
<P/>
This function was written by <B>Paul Smith</B>. It use the Singular system for commutative algebra. 
<P/><B>Examples:</B> 
</Description>

























































































































</ManSection>

<ManSection>

<Func Name="Prank" Arg="G"/>
<Description>
<P/>

Inputs a <M>p</M>-group <M>G</M> and returns the rank of the 
largest elementary abelian subgroup. 
<P/><B>Examples:</B> 
</Description>

























































































































</ManSection>

</Section>
</Chapter>

