# Singular

##### 7.5.6.0. annfsLogIdeal
Procedure from library `dmodideal.lib` (see dmodideal_lib).

Usage:
annfsLogIdeal(F); F an ideal

Return:
ring

Purpose:
compute the logarithmic annihilator of F[1]^s(1)*...*F[P]^s(P)

Assume:
basering is a commutative polynomial ring in characteristic 0

Note:
activate the output ring with the `setring` command. In this ring, annfsLog is the logarithmic annihilator of F^s (no Groebner basis). If printlevel=1, progress debug messages will be printed, if printlevel>=2, all the debug messages will be printed.

Example:
 ```LIB "dmodideal.lib"; ring R = 0,(x,y),dp; ideal F = x^3+y^4+x*y^3, x; def S1 = annfsLogIdeal(F); setring S1; annfsLog; ==> annfsLog[1]=-9*s(1)*x-12*s(1)*y-3*s(2)*x-4*s(2)*y+3*x^2*Dx+4*x*y*Dx+2*x*y\ *Dy+3*y^2*Dy ==> annfsLog[2]=-36*s(1)*y^2-192*s(1)*y-9*s(2)*y^2-64*s(2)*y+9*x*y^2*Dx+9*y^3\ *Dy+64*x*y*Dx+3*x^2*Dy-4*x*y*Dy+48*y^2*Dy setring R; // now compare with the full annihilator def S = annihilatorMultiFs(F); setring S; annFs; ==> annFs[1]=-3*x^2*Dx-4*x*y*Dx-2*x*y*Dy-3*y^2*Dy+9*x*s(1)+12*y*s(1)+3*x*s(2)\ +4*y*s(2) ==> annFs[2]=-9*x*y^2*Dx-9*y^3*Dy-64*x*y*Dx-3*x^2*Dy+4*x*y*Dy-48*y^2*Dy+36*y^\ 2*s(1)+9*y^2*s(2)+192*y*s(1)+64*y*s(2) ==> annFs[3]=-3*x^2*y^2*Dx-4*x*y^3*Dx+x*y^3*Dy+3*x^3*Dy+3*x*y^2*s(2)+4*y^3*s(\ 2) ==> annFs[4]=-144*x^2*y*Dx^2-84*x*y^2*Dx^2-141*x*y^2*Dx*Dy-81*y^3*Dy^2-768*x^\ 2*Dx^2-256*x*y*Dx^2+84*x^2*Dx*Dy-1008*x*y*Dx*Dy-192*y^2*Dx*Dy-51*x^2*Dy^2\ +64*x*y*Dy^2-336*y^2*Dy^2+36*x*y*Dx*s(2)+84*y^2*Dx*s(2)-27*y^2*Dy*s(2)-70\ 2*x*y*Dx-84*y^2*Dx-555*y^2*Dy+768*y*Dx*s(1)-384*y*Dy*s(1)+1296*y*s(1)^2+2\ 56*y*Dx*s(2)-128*y*Dy*s(2)+756*y*s(1)*s(2)+108*y*s(2)^2-3712*x*Dx-256*y*D\ x+244*x*Dy-2528*y*Dy+1980*y*s(1)+6912*s(1)^2+558*y*s(2)+4608*s(1)*s(2)+76\ 8*s(2)^2+8832*s(1)+2944*s(2) lead(groebner(imap(S1,annfsLog))); ==> _[1]=3*x^2*Dx ==> _[2]=9*x*y^2*Dx ==> _[3]=x*y^3*Dy ==> _[4]=27*y^4*Dx*Dy lead(groebner(annFs)); // and we see the difference ==> _[1]=3*x^2*Dx ==> _[2]=9*x*y^2*Dx ==> _[3]=3*y^3*Dx*Dy ==> _[4]=x*y^3*Dy ```