
7.5.4.0. annfsBMI
Procedure from library dmod.lib (see dmod_lib).
 Usage:
 annfsBMI(F [,eng,met,us]); F an ideal, eng, met, us optional ints
 Return:
 ring
 Purpose:
 compute two kinds of BernsteinSato ideals, associated to
f = F[1]*..*F[P], with the multivariate algorithm by Briancon and Maisonobe.
 Note:
 activate the output ring with the
setring command. In this ring,
 the ideal LD is the annihilator of F[1]^s_1*..*F[P]^s_p,
 the list or ideal BS is a BernsteinSato ideal of a polynomial f = F[1]*..*F[P].
If eng <>0, std is used for Groebner basis computations,
otherwise, and by default slimgb is used.
If met <0, the BSigma ideal (cf. Castro and Ucha,
'On the computation of BernsteinSato ideals', 2005) is computed.
If 0 < met < P, then the ideal B_P (cf. the paper) is computed.
Otherwise, and by default, the ideal B (cf. the paper) is computed.
If us<>0, then syzygiesdriven method is used.
If the output ideal happens to be principal, the list of factors
with their multiplicities is returned instead of the ideal.
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;
ideal F = x,y,x+y;
printlevel = 0;
// *1* let us compute the B ideal
def A = annfsBMI(F); setring A;
LD; // annihilator
==> LD[1]=x*Dx+y*Dys(1)s(2)s(3)
==> LD[2]=x*y*Dy+y^2*Dyx*s(2)y*s(2)y*s(3)
==> LD[3]=y^2*Dx*Dyy^2*Dy^2+y*Dy*s(1)y*Dx*s(2)+2*y*Dy*s(2)y*Dx*s(3)+y*Dy*s\
(3)s(1)*s(2)s(2)^2s(2)*s(3)s(2)
BS; // BernsteinSato ideal
==> [1]:
==> _[1]=s(1)+1
==> _[2]=s(2)+1
==> _[3]=s(3)+1
==> _[4]=s(1)+s(2)+s(3)+2
==> _[5]=s(1)+s(2)+s(3)+3
==> _[6]=s(1)+s(2)+s(3)+4
==> [2]:
==> 1,1,1,1,1,1
// *2* now, let us compute BSigma ideal
setring r;
def Sigma = annfsBMI(F,0,1); setring Sigma;
print(matrix(lead(LD))); // compact form of leading
==> x*Dx,x*y*Dy,y^2*Dx*Dy
// monomials from the annihilator
BS; // BernsteinSato BSigma ideal: it is principal,
==> [1]:
==> _[1]=s(1)+s(2)+s(3)+2
==> [2]:
==> 1
// so factors and multiplicities are returned
// *3* and now, let us compute Bi ideal
setring r;
def Bi = annfsBMI(F,0,3); // that is F[3]=x+y is taken
setring Bi;
print(matrix(lead(LD))); // compact form of leading
==> x*Dx,x*y*Dy,y^2*Dx*Dy
// monomials from the annihilator
BS; // the B_3 ideal: it is principal, so factors
==> [1]:
==> _[1]=s(3)+1
==> _[2]=s(1)+s(2)+s(3)+2
==> [2]:
==> 1,1
// and multiplicities are returned

