Macaulay2 » Documentation
Packages » InvariantRing :: invariants(...,UseLinearAlgebra=>...)
next | previous | forward | backward | up | index | toc

invariants(...,UseLinearAlgebra=>...) -- strategy for computing invariants of finite groups

Synopsis

Description

This function is provided by the package InvariantRing.

This optional argument determines the strategy used to compute generating invariants of a finite group action. The default strategy uses the Reynolds operator, however this may be slow for large groups. Setting this argument to true uses the linear algebra method for computing invariants of a given degree by calling invariants(FiniteGroupAction,ZZ). This may provide a speedup at lower degrees, especially if the user-provided generating set for the group is small.

The following example computes the invariants of the symmetric group on 4 elements. Note that using different strategies may lead to different sets of generating invariants.

i1 : R = QQ[x_1..x_4]

o1 = R

o1 : PolynomialRing
i2 : L = apply({"2134","2341"},permutationMatrix);
i3 : S4 = finiteAction(L,R)

o3 = R <- {| 0 1 0 0 |, | 0 0 0 1 |}
           | 1 0 0 0 |  | 1 0 0 0 |
           | 0 0 1 0 |  | 0 1 0 0 |
           | 0 0 0 1 |  | 0 0 1 0 |

o3 : FiniteGroupAction
i4 : elapsedTime invariants S4
 -- 1.23941 seconds elapsed

                          2    2    2    2   3    3    3    3   4    4    4  
o4 = {x  + x  + x  + x , x  + x  + x  + x , x  + x  + x  + x , x  + x  + x  +
       1    2    3    4   1    2    3    4   1    2    3    4   1    2    3  
     ------------------------------------------------------------------------
      4
     x }
      4

o4 : List
i5 : elapsedTime invariants(S4,UseLinearAlgebra=>true)
 -- 0.0534387 seconds elapsed

o5 = {x  + x  + x  + x , x x  + x x  + x x  + x x  + x x  + x x , x x x  +
       1    2    3    4   1 2    1 3    2 3    1 4    2 4    3 4   1 2 3  
     ------------------------------------------------------------------------
     x x x  + x x x  + x x x , x x x x }
      1 2 4    1 3 4    2 3 4   1 2 3 4

o5 : List

Further information

See also

Functions with optional argument named UseLinearAlgebra :