##### 7.5.13.0. ncHilbertPolynomial

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

Usage:
  ncHilbertPolynomial(M); M is a module

Return:
  ring

Purpose:
  computes the Hilbert polynomial of A^m/M

Assume:
  - M is given via a Groebner basis
  - the weights of all the ring variables are positive

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

Example:

    LIB "nchilbert.lib";
    def A = makeUsl2(); setring A;
    ideal I = h^4,e*f*h^3,e^2*f^2*h^2+2*e*f*h^2; I = std(I);
    dim(I); // 2
    ==> 2
    def r = ncHilbertPolynomial(I); setring r;
    ncHP; // 2t+7
    ==> 2t+7
    kill r;
    // 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;
    ideal I = imap(A,I);
    I = std(I);
    dim(I); // 2
    ==> 2
    def r = ncHilbertPolynomial(I); setring r;
    ==> // ** redefining r (def r = ncHilbertPolynomial(I); setring r;) ./example\
       s/ncHilbertPolynomial.sing:15
    ncHP; // 6t+18
    ==> 6t+18

See also: hilbPoly.

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