|
7.5.4.0. annfspecialOld
Procedure from library dmod.lib (see dmod_lib).
- Usage:
- annfspecialOld(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, which has a bug.
This procedure is correct for integer values of n.
- 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;
annfspecialOld(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
annfspecialOld(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
annfspecialOld(LD,F,-1,1); // exceptional integer 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
|
|