##### 7.5.13.0. ncHilbertMultiplicity

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

Usage:
  ncHilbertMultiplicity(M); M is a module

Return:
  bigint

Purpose:
  compute the (Hilbert) multiplicity of the module coker(M)

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

Note:
  the multiplicity depends on the selected weights of variables

Example:

    LIB "nchilbert.lib";
    def A = makeUsl2(); setring A;
    ideal I = e,h-1; I = std(I);
    ncHilbertMultiplicity(I); // multiplicity of A/I
    ==> Warning: the input generators are not a Groebner basis
    ==> The result might have no meaning
    ==> 1
    ideal J = I, f^2; J = std(J);
    ncHilbertMultiplicity(J);
    ==> Warning: the input generators are not a Groebner basis
    ==> The result might have no meaning
    ==> 2
    // now the same algebra with 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);
    ncHilbertMultiplicity(I);
    ==> Warning: the input generators are not a Groebner basis
    ==> The result might have no meaning
    ==> 3
    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
    ncHilbertMultiplicity(G);
    ==> 3

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