  
  [1X7. Poincare series[0X
  
      | [10XEfficientNormalSubgroups(G)[0X [10XEfficientNormalSubgroups(G,k)[0X Inputs a prime-power group G and, optionally, a positive integer k. The default is k=4. The function returns a list of normal subgroups N in G such that the Poincare series for G equals the Poincare series for the direct product (N x (G/N)) up to degree k.                                                                                                                                                                                                                                                                                                                                                                             | 
      | [10XExpansionOfRationalFunction(f,n)[0X Inputs a positive integer n and a rational function f(x)=p(x)/q(x) where the degree of the polynomial p(x) is less than that of q(x). It returns a list [a_0 , a_1 , a_2 , a_3 , ... ,a_n] of the first n+1 coefficients of the infinite expansion f(x) = a_0 + a_1x + a_2x^2 + a_3x^3 + ... .                                                                                                                                                                                                                                                                                                                                                                        | 
      | [10X PoincareSeries(G,n) [0X   [10X PoincareSeries(R,n) [0X [10X PoincareSeries(L,n) [0X [10X PoincareSeries(G) [0X Inputs a finite p-group G and a positive integer n. It returns a quotient of polynomials f(x)=P(x)/Q(x) whose coefficient of x^k equals the rank of the vector space H_k(G,Z_p) for all k in the range k=1 to k=n. (The second input variable can be omitted, in which case the function tries to choose a "reasonable" value for n.) In place of the group G the function can also input (at least n terms of) a minimal mod p resolution R for G. Alternatively, the first input variable can be a list L of integers. In this case the coefficient of x^k in f(x) is equal to the (k+1)st term in the list. | 
      | [10XPoincareSeriesPrimePart(G,p,n) [0X Inputs a finite group G, a prime p, and a positive integer n. It returns a quotient of polynomials f(x)=P(x)/Q(x) whose coefficient of x^k equals the rank of the vector space H_k(G,Z_p) for all k in the range k=1 to k=n. The efficiency of this function needs to be improved.                                                                                                                                                                                                                                                                                                                                                                                     | 
      | [10X Prank(G) [0X Inputs a p-group G and returns the rank of the largest elementary abelian subgroup.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | 
  
