next | previous | forward | backward | up | top | index | toc | Macaulay2 website
InvariantRing :: secondaryInvariants(...,PrintDegreePolynomial=>...)

secondaryInvariants(...,PrintDegreePolynomial=>...) -- an optional argument for secondaryInvariants that determines the printing of an informative polynomial



PrintDegreePolynomial takes a Boolean value and is set to false by default. If it is set to true, then secondaryInvariants will print a polynomial in the variable T. This polynomial encodes the degrees of the secondary invariants (given by the exponents of T appearing in it) and the number of secondary invariants of a given degree (the coefficient of the corresponding term in the polynomial). Specifically, if secondaryInvariants takes as input a set of primary invariants of degrees d1,...,dn for an invariant ring SG of a finite group G, and H(SG,T)denotes the Molien (Hilbert) series of SG, then secondaryInvariants will compute the polynomial H(SG,T)*(1-Td1)*...*(1-Tdn).

The example below computes the secondary invariants for the dihedral group with 6 elements, given a set of primary invariants P. The optional argument PrintDegreePolynomial is set to true in order to see which degrees the secondary invariants should have.

i1 : K=toField(QQ[a]/(a^2+a+1));
i2 : R=K[x,y];
i3 : A=matrix{{a,0},{0,a^2}};

             2       2
o3 : Matrix K  <--- K
i4 : B=sub(matrix{{0,1},{1,0}},K);

             2       2
o4 : Matrix K  <--- K
i5 : D6=finiteAction({A,B},R)

o5 = R <- {| a 0    |, | 0 1 |}
           | 0 -a-1 |  | 1 0 |

o5 : FiniteGroupAction
i6 : P={x^3+y^3,-(x^3-y^3)^2};
i7 : secondaryInvariants(P,D6,PrintDegreePolynomial=>true)
 4    2
t  + t  + 1

               2 2
o7 = {1, x*y, x y }

o7 : List

Further information


Currently, a user needs to ensure that the all primary invariants are defined with coefficients in a ring that Macaulay2 recognises as a characteristic zero field (see toField for a way to do this).

Functions with optional argument named PrintDegreePolynomial :