# Singular

##### 7.7.4.0. annfspecial
Procedure from library `dmod.lib` (see dmod_lib).

Usage:
annfspecial(I,F,mir,n); I an ideal, F a poly, int mir, number n

Return:
ideal

Purpose:
compute the annihilator ideal of F^n in the Weyl Algebra
for the given rational number n

Assume:
The basering is D[s] and contains 's' explicitly as a variable,
the ideal I is the Ann F^s in D[s] (obtained with e.g. SannfsBM),
the integer 'mir' is the minimal integer root of the BS polynomial of F,
and the number n is rational.

Note:
We compute the real annihilator for any rational value of n (both
generic and exceptional). The implementation goes along the lines of
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; def B = annfs(F); setring B; minIntRoot(BS[1],0); ==> -1 // So, the minimal integer root is -1 setring r; def A = SannfsBM(F); setring A; poly F = x3-y2; annfspecial(LD,F,-1,3/4); // generic root ==> _[1]=4*x*Dx+6*y*Dy-9 ==> _[2]=3*x^2*Dy+2*y*Dx ==> _[3]=18*x*y*Dy^2-8*y*Dx^2-33*x*Dy ==> _[4]=54*y^2*Dy^3+16*y*Dx^3+66*x*Dx*Dy-9*y*Dy^2+66*Dy annfspecial(LD,F,-1,-2); // integer but still generic root ==> _[1]=2*x*Dx+3*y*Dy+12 ==> _[2]=3*x^2*Dy+2*y*Dx ==> _[3]=9*x*y*Dy^2-4*y*Dx^2+33*x*Dy ==> _[4]=27*y^2*Dy^3+8*y*Dx^3-66*x*Dx*Dy+144*y*Dy^2-66*Dy annfspecial(LD,F,-1,1); // exceptional root ==> _[1]=Dx*Dy ==> _[2]=2*x*Dx+3*y*Dy-6 ==> _[3]=Dy^3 ==> _[4]=y*Dy^2-Dy ==> _[5]=3*x*Dy^2+Dx^2 ==> _[6]=3*x^2*Dy+2*y*Dx ==> _[7]=Dx^3+3*Dy^2 ==> _[8]=y*Dx^2+3*x*Dy ```