##### 7.5.13.0. ncHilbertSeries

Procedure from library `nchilbert.lib` (see nchilbert_lib).

Usage:
  ncHilbertSeries(M,j); M is a module, j is an int

Return:
  ring

Purpose:
  computes the first (if j=1) and second (j=2) Hilbert Series of A^m/M

Assume:
  - M is given via a Groebner basis; j is 1 or 2;
  - the weights of all the ring variables are positive

Note:
  - the procedure returns an univariate ring and a polynomial called `ncHS` in it.

Example:

    LIB "nchilbert.lib";
    def A = makeUsl2(); setring A;
    ideal I = e,h-1; I = std(I);
    def r = ncHilbertSeries(I,1); setring r;
    ==> Warning: the input generators are not a Groebner basis
    ==> The result might have no meaning
    ncHS;
    ==> t2-2t+1
    setring A; kill r;
    def s= ncHilbertSeries(I,2); setring s;
    ==> Warning: the input generators are not a Groebner basis
    ==> The result might have no meaning
    ncHS;
    ==> 1
    // now consider admissible weights 1,2,3
    ring r = 0,(e,f,h),wp(1,2,3);
    matrix D[3][3]; D[1,2]=-h; D[1,3]=2*e;D[2,3]=-2*f;
    def R = nc_algebra(1,D); setring R;
    matrix M[2][5] =
    e,h-1,f^2, 0,0,
    0,0,0, e,h+1;
    module G = std(M);
    print(G);
    ==> e,0,h-1,0,  f2,
    ==> 0,e,0,  h+1,0
    def r= ncHilbertSeries(G,1);  setring r;
    ==> // ** redefining r (def r= ncHilbertSeries(G,1);  setring r;) ./examples/\
       ncHilbertSeries.sing:18
    ncHS; // first weighted Hilbert series of R^2/G
    ==> -t8+t7+t5+t4-2t3-2t+2
    setring R; kill r;
    def s=ncHilbertSeries(G,2); setring s;
    ==> // ** redefining s (def s=ncHilbertSeries(G,2); setring s;) ./examples/nc\
       HilbertSeries.sing:21
    ncHS;// second weighted Hilbert series of R^2/G
    ==> -t6-t5-t4+2t2+2t+2

User manual for Singular version 4.4.1, 2025, generated by texi2html.