|
7.5.4.0. SannfsBFCT
Procedure from library dmod.lib (see dmod_lib).
- Usage:
- SannfsBFCT(f [,a,b,c]); f a poly, a,b,c optional ints
- Return:
- ring
- Purpose:
- compute a Groebner basis either of Ann(f^s)+<f> or of
Ann(f^s)+<f,f_1,...,f_n> in D[s]
- Note:
- Activate the output ring with the
setring command.
This procedure, unlike SannfsBM, returns the ring D[s] with an anti-
elimination ordering for s.
The output ring contains an ideal LD , being a Groebner basis
either of Ann(f^s)+<f>, if a=0 (and by default), or of
Ann(f^s)+<f,f_1,...,f_n>, otherwise.
Here, f_i stands for the i-th partial derivative of f.
If b<>0, std is used for Groebner basis computations,
otherwise, and by default slimgb is used.
If c<>0, std is used for Groebner basis computations of
ideals <I+J> when I is already a Groebner basis of <I>.
Otherwise, and by default the engine determined by the switch b is
used. Note that in the case c<>0, the choice for b will be
overwritten only for the types of ideals mentioned above.
This means that if b<>0, specifying c has no effect.
- 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,z,w),Dp;
poly F = x^3+y^3+z^3*w;
// compute Ann(F^s)+<F> using slimgb only
def A = SannfsBFCT(F);
setring A; A;
==> // coefficients: QQ
==> // number of vars : 9
==> // block 1 : ordering dp
==> // : names s
==> // block 2 : ordering dp
==> // : names x y z w Dx Dy Dz Dw
==> // block 3 : ordering C
==> // noncommutative relations:
==> // Dxx=x*Dx+1
==> // Dyy=y*Dy+1
==> // Dzz=z*Dz+1
==> // Dww=w*Dw+1
LD;
==> LD[1]=z*Dz-3*w*Dw
==> LD[2]=3*s-x*Dx-y*Dy-3*w*Dw
==> LD[3]=y^2*Dx-x^2*Dy
==> LD[4]=z^2*w*Dy-y^2*Dz
==> LD[5]=z^3*Dy-3*y^2*Dw
==> LD[6]=z^2*w*Dx-x^2*Dz
==> LD[7]=z^3*Dx-3*x^2*Dw
==> LD[8]=z^3*w+x^3+y^3
==> LD[9]=x^3*Dy+y^3*Dy+3*y^2*w*Dw+3*y^2
==> LD[10]=x^3*Dx+x^2*y*Dy+3*x^2*w*Dw+3*x^2
==> LD[11]=3*z*w^2*Dy*Dw-y^2*Dz^2+2*z*w*Dy
==> LD[12]=3*z*w^2*Dx*Dw-x^2*Dz^2+2*z*w*Dx
==> LD[13]=3*z^2*w^2*Dw+x^3*Dz+y^3*Dz+3*z^2*w
==> LD[14]=9*w^3*Dy*Dw^2-y^2*Dz^3+18*w^2*Dy*Dw+2*w*Dy
==> LD[15]=9*w^3*Dx*Dw^2-x^2*Dz^3+18*w^2*Dx*Dw+2*w*Dx
==> LD[16]=9*z*w^3*Dw^2+x^3*Dz^2+y^3*Dz^2+24*z*w^2*Dw+6*z*w
==> LD[17]=27*w^4*Dw^3+x^3*Dz^3+y^3*Dz^3+135*w^3*Dw^2+114*w^2*Dw+6*w
// the Bernstein-Sato poly of F:
vec2poly(pIntersect(s,LD));
==> s^6+28/3*s^5+320/9*s^4+1910/27*s^3+2093/27*s^2+1198/27*s+280/27
// a fancier example:
def R = reiffen(4,5); setring R;
RC; // the Reiffen curve in 4,5
==> xy4+y5+x4
// compute Ann(RC^s)+<RC,diff(RC,x),diff(RC,y)>
// using std for GB computations of ideals <I+J>
// where I is already a GB of <I>
// and slimgb for other ideals
def B = SannfsBFCT(RC,1,0,1);
setring B;
// the Bernstein-Sato poly of RC:
(s-1)*vec2poly(pIntersect(s,LD));
==> s^13+10*s^12+44*s^11+44099/400*s^10+13355001/80000*s^9+22138611/160000*s^\
8+1747493/160000*s^7-7874303503/64000000*s^6-4244944536107/25600000000*s^\
5-3066298289417/25600000000*s^4-2787777479229/51200000000*s^3-19980507461\
787/1280000000000*s^2-663659243177931/256000000000000*s-48839201079669/25\
6000000000000
|
|