| ##### 7.5.4.0. annfspecial Procedure from library `dmod.lib` (see dmod_lib). Usage: annfspecial(F,n); F a poly, number n Return: ring Purpose: compute the annihilator ideal of F^n in the Weyl Algebra for the given rational number n Assume: basering is commutative, the number n is rational. Note: Activate the output ring by `setring` command. In the ring the ideal called `annfalpha` is exported. We compute the real annihilator for any rational value of n (both generic and exceptional). The implementation fixes a bug in the Algorithm 5.3.15 from Saito-Sturmfels-Takayama. Display: If printlevel=1, progress debug messages will be printed, if printlevel>=2, all the debug messages will be printed. Example:
    LIB "dmod.lib";
    ring r = 0,(x,y),dp;
    poly F = x3-y2;
    bernsteinBM(F); // the roots of Bernstein-Sato poly: -7/6, -1, -5/6
    ==> [1]:
    ==>    _[1]=-1
    ==>    _[2]=-5/6
    ==>    _[3]=-7/6
    ==> [2]:
    ==>    1,1,1
    // *** first example: generic root
    def A = annfspecial(F,-5/6);
    setring A; print(annfalpha); kill A; setring r;
    ==> 2*x*Dx+3*y*Dy+5,
    ==> 3*x^2*Dy+2*y*Dx,
    ==> 9*x*y*Dy^2-4*y*Dx^2+12*x*Dy,
    ==> 27*y^2*Dy^3+8*y*Dx^3+117*y*Dy^2+72*Dy
    // *** second example:  exceptional root since its distance to -1 is integer 2
    def A = annfspecial(F,1);
    setring A;  print(annfalpha); kill A; setring r;
    ==> Dx*Dy,
    ==> 2*x*Dx+3*y*Dy-6,
    ==> Dy^3,
    ==> y*Dy^2-Dy,
    ==> 3*x*Dy^2+Dx^2,
    ==> 3*x^2*Dy+2*y*Dx,
    ==> Dx^3+3*Dy^2,
    ==> y*Dx^2+3*x*Dy
    // *** third example: exceptional root since its distance to -5/6 is integer 1
    def A = annfspecial(F,1/6);
    setring A;  print(annfalpha); kill A;
    ==> 2*x*Dx+3*y*Dy-1,
    ==> 3*x^2*Dy+2*y*Dx,
    ==> 27*y*Dy^3+8*Dx^3+9*Dy^2,
    ==> 9*x*y*Dy^2-4*y*Dx^2-6*x*Dy

User manual for Singular version 4.4.0, 2024, generated by texi2html.