#### D.7.1.21 primary_charp_random

Procedure from library `finvar.lib` (see finvar_lib).

Usage:
  primary_charp_random(REY,ringname,r[,v]);
  REY: a <matrix> representing the Reynolds operator, ringname: a <string> giving the name of a ring where the Molien series is stored, r: an <int> where -|r| to |r| is the range of coefficients of the random combinations of bases elements, v: an optional <int>

Assume:
  REY is the first return value of group_reynolds or reynolds_molien and ringname gives the name of a ring of characteristic 0 that has been created by molien or reynolds_molien

Display:
  information about the various stages of the programme if v does not equal 0

Return:
  primary invariants (type <matrix>) of the invariant ring

Theory:
  Bases of homogeneous invariants are generated successively and random linear combinations are chosen as primary invariants that lower the dimension of the ideal generated by the previously found invariants (see "Generating a Noetherian Normalization of the Invariant Ring of a Finite Group" by Decker, Heydtmann, Schreyer (1998)).

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=group_reynolds(A);
    string newring="alskdfj";
    molien(L[2..size(L)],newring);
    matrix P=primary_charp_random(L[1],newring,1);
    kill Finvar::`newring`;
    print(P);
    ==> z2,x2+y2,x4+y4-z4

User manual for Singular version 4-0-3, 2016, generated by texi2html.