Writing the diagonal group acting on the polynomial ring $k[x_1,\dots,x_n]$ as $(k^*)^r \times \mathbb{Z}/d_1 \times \cdots \times \mathbb{Z}/d_g$, this function returns g.
Here is an example of a product of two cyclic groups of order 3 acting on a polynomial ring in 3 variables.
i1 : R = QQ[x_1..x_3] o1 = R o1 : PolynomialRing |
i2 : d = {3,3} o2 = {3, 3} o2 : List |
i3 : W = matrix{{1,0,1},{0,1,1}} o3 = | 1 0 1 | | 0 1 1 | 2 3 o3 : Matrix ZZ <--- ZZ |
i4 : A = diagonalAction(W, d, R) o4 = R <- ZZ/3 x ZZ/3 via | 1 0 1 | | 0 1 1 | o4 : DiagonalAction |
i5 : numgens A o5 = 2 |