<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/chap8.html</Link><LinkText>1</LinkText></URL>&nbsp;, <URL><Link>../tutorial/chap11.html</Link><LinkText>2</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/chap8.html</Link><LinkText>2</LinkText></URL>&nbsp;, <URL><Link>../tutorial/chap11.html</Link><LinkText>3</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutArithmetic.html</Link><LinkText>4</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutModPRings.html</Link><LinkText>5</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutPoincareSeries.html</Link><LinkText>6</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutPoincareSeriesII.html</Link><LinkText>7</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutIntro.html</Link><LinkText>8</LinkText></URL>&nbsp;, <URL><Link>../www/SideLinks/About/aboutTorAndExt.html</Link><LinkText>9</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>