| ##### 7.5.5.0. annRat Procedure from library `dmodapp.lib` (see dmodapp_lib). Usage: annRat(g,f); f, g polynomials Return: ring (a Weyl algebra) containing an ideal 'LD' Purpose: compute the annihilator of the rational function g/f in the corresponding Weyl algebra Assume: basering is commutative and over a field of characteristic 0 Note: Activate the output ring with the `setring` command. In the output ring, the ideal 'LD' (in Groebner basis) is the annihilator of g/f. The algorithm uses the computation of Ann(f^{-1}) via D-modules, see (SST). Display: If printlevel =1, progress debug messages will be printed, if printlevel>=2, all the debug messages will be printed. Example:
    LIB "dmodapp.lib";
    ring r = 0,(x,y),dp;
    poly g = 2*x*y;  poly f = x^2 - y^3;
    def B = annRat(g,f);
    setring B;
    LD;
    ==> LD[1]=3*y^2*Dx^2*Dy+2*x*Dx*Dy^2+9*y*Dx^2+4*Dy^2
    ==> LD[2]=3*y^3*Dx^2-10*x*y*Dx*Dy-8*y^2*Dy^2+10*x*Dx
    ==> LD[3]=y^3*Dy^2-x^2*Dy^2-6*x*y*Dx+2*y^2*Dy+4*y
    ==> LD[4]=3*x*Dx+2*y*Dy+1
    ==> LD[5]=y^4*Dy-x^2*y*Dy+2*y^3+x^2
    // Now, compare with the output of Macaulay2:
    ideal tst = 3*x*Dx + 2*y*Dy + 1, y^3*Dy^2 - x^2*Dy^2 + 6*y^2*Dy + 6*y,
    9*y^2*Dx^2*Dy-4*y*Dy^3+27*y*Dx^2+2*Dy^2, 9*y^3*Dx^2-4*y^2*Dy^2+10*y*Dy -10;
    option(redSB); option(redTail);
    LD = groebner(LD);
    tst = groebner(tst);
    print(matrix(NF(LD,tst)));  print(matrix(NF(tst,LD)));
    ==> 0,0,0,0,0
    ==> 0,0,0,0,0
    // So, these two answers are the same
See also: annPoly.

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