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

primaryInvariants(...,DegreeVector=>...) -- an optional argument for primaryInvariants that finds invariants of certain degrees

Synopsis

Description

By default, primaryInvariants uses an optimising algorithm which tests for the existence of a homogeneous system of parameters (hsop) (f1,...,fn) with positive degrees corresponding to (d1,...,dn) in ZZn. If it is known that a hsop exists for a certain collection of degrees, this can be assigned, as a List, to the optional argument DegreeVector. primaryInvariants will then output a hsop corresponding to this list of degrees. If however no such hsop exists, primaryInvariants outputs an error message.

Note that the List assigned to DegreeVector is ignored if Dade is set to true.

i1 : A=matrix{{0,1,0},{0,0,1},{1,0,0}};

              3        3
o1 : Matrix ZZ  <--- ZZ
i2 : B=matrix{{0,1,0},{1,0,0},{0,0,1}};

              3        3
o2 : Matrix ZZ  <--- ZZ
i3 : S3=finiteAction({A,B},QQ[x,y,z])

o3 = QQ[x..z] <- {| 0 1 0 |, | 0 1 0 |}
                  | 0 0 1 |  | 1 0 0 |
                  | 1 0 0 |  | 0 0 1 |

o3 : FiniteGroupAction
i4 : primaryInvariants(S3,DegreeVector=>{3,3,4})

       3    3    3   2       2    2     2       2      2   3       3    3   
o4 = {x  + y  + z , x y + x*y  + x z + y z + x*z  + y*z , x y + x*y  + x z +
     ------------------------------------------------------------------------
      3       3      3
     y z + x*z  + y*z }

o4 : List

Further information

Caveat

Currently users can only use primaryInvariants to calculate a hsop for the invariant ring over a finite field by using the Dade algorithm. Users should enter the finite field as a GaloisField or a quotient field of the form ZZ/p and are advised to ensure that the ground field has cardinality greater than |G|n-1, where n is the number of variables in the polynomial ring R. Using a ground field smaller than this runs the risk of the algorithm getting stuck in an infinite loop; primaryInvariants displays a warning message asking the user whether they wish to continue with the computation in this case. See hsop algorithms for a discussion on the Dade algorithm.

See also

Functions with optional argument named DegreeVector :