# Singular

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

Usage:
annfs0(I, F [,eng]); I an ideal, F a poly, eng an optional int

Return:
ring

Purpose:
compute the annihilator ideal of f^s in the Weyl Algebra, based
on the output of Sannfs-like procedure

Note:
activate the output ring with the setring command. In this ring,
- the ideal LD (which is a Groebner basis) is the annihilator of f^s,
- the list BS contains the roots with multiplicities of BS polynomial of f.
If eng <>0, std is used for Groebner basis computations,
otherwise and by default slimgb is used.
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,z),Dp; poly F = x^3+y^3+z^3; printlevel = 0; def A = SannfsBM(F); setring A; // alternatively, one can use SannfsOT or SannfsLOT LD; ==> LD[1]=z^2*Dy-y^2*Dz ==> LD[2]=x*Dx+y*Dy+z*Dz-3*s ==> LD[3]=z^2*Dx-x^2*Dz ==> LD[4]=y^2*Dx-x^2*Dy poly F = imap(r,F); def B = annfs0(LD,F); setring B; LD; ==> LD[1]=x*Dx+y*Dy+z*Dz+6 ==> LD[2]=z^2*Dy-y^2*Dz ==> LD[3]=z^2*Dx-x^2*Dz ==> LD[4]=y^2*Dx-x^2*Dy ==> LD[5]=x^3*Dz+y^3*Dz+z^3*Dz+6*z^2 ==> LD[6]=x^3*Dy+y^3*Dy+y^2*z*Dz+6*y^2 BS; ==> [1]: ==> _[1]=-1 ==> _[2]=-2 ==> _[3]=-5/3 ==> _[4]=-4/3 ==> [2]: ==> 2,1,1,1