Home Online Manual
Top
Back: irred_secondary_char0
Forward: secondary_no_molien
FastBack:
FastForward:
Up: finvar_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.7.1.28 secondary_charp

Procedure from library finvar.lib (see finvar_lib).

Usage:
secondary_charp(P,REY,ringname[,v][,"old"]);
P: a 1xn <matrix> with homogeneous primary invariants, where n is the number of variables of the basering;
REY: a gxn <matrix> representing the Reynolds operator, where g the size of the corresponding group;
ringname: a <string> giving the name of a ring of characteristic 0 containing a 1x2 <matrix> M giving numerator and denominator of the Molien series;
v: an optional <int>;
"old": if this string occurs as (optional) parameter, then an old version of secondary_char0 is used (for downward
compatibility)

Assume:
The characteristic of basering is not zero;
REY is the 1st return value of group_reynolds(), reynolds_molien() or the second one of primary_invariants();
`ringname` is the name of a ring of characteristic 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:
The secondary invariants are calculated by finding a basis (in terms of monomials) of the basering modulo the primary invariants, mapping those to invariants with the Reynolds operator. Among these images or their power products we pick secondary invariants using Groebner basis techniques (see S. King: Fast Computation of Secondary Invariants). The size of this set can be read off from the Molien series.

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)],1);
==> 
==> We need to find
==> 1 secondary invariant in degree 0
==> 0 secondary invariants in degree 1
==> 0 secondary invariants in degree 2
==> 2 secondary invariants in degree 3
==> 1 secondary invariant in degree 4
==> In degree 0 we have: 1
==> 
==> Searching in degree  3 , we need to find  2  invariant(s)...
==>   Looking for Power Products...
==>   There are  2 irreducible secondary invariants in degree  3
==>     We found all 2 irreducibles in degree  3
==> 
==> Searching in degree  4 , we need to find  1  invariant(s)...
==>   Looking for Power Products...
==>   There are  1 irreducible secondary invariants in degree  4
==>     We found all 1 irreducibles in degree  4
==> 
==>   We're done!
==> 
print(S);
==> 1,xyz,x2z-y2z,x3y-xy3
print(IS);
==> xyz,x2z-y2z,x3y-xy3