|
D.6.1.25 secondary_charp
Procedure from library finvar.lib (see finvar_lib).
- Usage:
secondary_charp(P,REY,ringname[,v]);
P: a 1xn <matrix> with primary invariants, REY: a gxn <matrix>
representing the Reynolds operator, ringname: a <string> giving the
name of a ring of characteristic 0 where the Molien series is stored,
v: an optional <int>
- Assume:
n is the number of variables of the basering, g the size of the group,
REY is the 1st return value of group_reynolds(), reynolds_molien() or
the second one of primary_invariants(), ‘ringname‘ is a ring of
char 0 that has been created by molien() or reynolds_molien() or
primary_invariants()
- Return:
secondary invariants of the invariant ring (type <matrix>) and
irreducible secondary invariants (type <matrix>)
- Display:
information if v does not equal 0
- Theory:
Secondary invariants are calculated by finding a basis (in terms of
monomials) of the basering modulo primary invariants, mapping those
to invariants with the Reynolds operator and using these images or
their power products such that they are linearly independent modulo
the primary invariants (see paper "Some Algorithms in Invariant
Theory of Finite Groups" by Kemper and Steel (1997)).
Example:
| LIB "finvar.lib";
ring R=3,(x,y,z),dp;
matrix A[3][3]=0,1,0,-1,0,0,0,0,-1;
list L=primary_invariants(A);
matrix S,IS=secondary_charp(L[1..size(L)]);
print(S);
→ 1,xyz,x2z-y2z,x3y-xy3
print(IS);
→ xyz,x2z-y2z,x3y-xy3
|
|