| ##### 7.7.7.0. ivHilbert Procedure from library `fpadim.lib` (see fpadim_lib). Usage: ivHilbert(L,n[,degbound]); L a list of intmats, n an integer, degbound an optional integer Return: intvec, containing the coefficients of the Hilbert series Purpose: Computing the Hilbert series Assume: - basering is a Letterplace ring. - all rows of each intmat correspond to a Letterplace monomial for the encoding of the variables see the overview - if you specify a different degree bound degbound, degbound <= attrib(basering,uptodeg) should hold. Note: - If degbound is set, a degree bound will be added. By default there is no degree bound. - n is the number of variables. - If I is returned, then I[k] is the (k-1)-th coefficient of the Hilbert series. - If the K-dimension is known to be infinite, a degree bound is needed Example:
    LIB "fpadim.lib";
    ring r = 0,(x,y),dp;
    def R = makeLetterplaceRing(5); // constructs a Letterplace ring
    R;
    ==> //   characteristic : 0
    ==> //   number of vars : 10
    ==> //        block   1 : ordering a
    ==> //                  : names    x(1) y(1) x(2) y(2) x(3) y(3) x(4) y(4) x(\
       5) y(5)
    ==> //                  : weights     1    1    1    1    1    1    1    1   \
        1    1
    ==> //        block   2 : ordering dp
    ==> //                  : names    x(1) y(1)
    ==> //        block   3 : ordering dp
    ==> //                  : names    x(2) y(2)
    ==> //        block   4 : ordering dp
    ==> //                  : names    x(3) y(3)
    ==> //        block   5 : ordering dp
    ==> //                  : names    x(4) y(4)
    ==> //        block   6 : ordering dp
    ==> //                  : names    x(5) y(5)
    ==> //        block   7 : ordering C
    setring R; // sets basering to Letterplace ring
    //some intmats, which contain monomials in intvec representation as rows
    intmat I1 [2][2] = 1,1,2,2; intmat I2 [1][3]  = 1,2,1;
    intmat J1 [1][2] =  1,1; intmat J2 [2][3] = 2,1,2,1,2,1;
    print(I1);
    ==>      1     1
    ==>      2     2
    print(I2);
    ==>      1     2     1
    print(J1);
    ==>      1     1
    print(J2);
    ==>      2     1     2
    ==>      1     2     1
    list G = I1,I2; // ideal, which is already a Groebner basis
    list I = J1,J2; // ideal, which is already a Groebner basis
    ivHilbert(G,2); // invokes the procedure without any degree bound
    ==> 1,2,2,1
    ivHilbert(I,2,5); // invokes the procedure with degree bound 5
    ==> 1,2,3,3,4,4

User manual for Singular version 4-0-2, 2015, generated by texi2html.