##### 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-3, 2016, generated by texi2html.