Home Online Manual
Top
Back: BSidealFromAnn
Forward: BFBoundsBudur
FastBack:
FastForward:
Up: dmodideal_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document
7.5.6.0. BernsteinSatoIdeal
Procedure from library dmodideal.lib (see dmodideal_lib).

Usage:
BernsteinSatoIdeal(F [,eng,met,us]); F an ideal, eng, us optional ints, met optional int or intvec

Return:
ring

Purpose:
compute two kinds of Bernstein-Sato ideals, associated to f = F[1]*..*F[P], with the multivariate algorithm by Briancon and Maisonobe.

Assume:
basering is a commutative polynomial ring in characteristic 0

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 Bernstein-Sato 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 B-Sigma ideal (cf. Castro and Ucha, 'On the computation of Bernstein-Sato ideals', 2005) is computed. If 0 < met < P, then the ideal B_P (cf. the paper) is computed. If met is an intvec, Budurs generalized Bernstein-Sato ideal associated to met is computed.
Otherwise, and by default, the ideal B (cf. the paper) is computed. If us<>0, then syzygies-driven method is used.
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^2-y,y;
// first we compute the ideal B:
def S = BernsteinSatoIdeal(F);
setring S;
BS;
==> BS[1]=4*s(1)^3*s(2)+4*s(1)^3+8*s(1)^2*s(2)^2+28*s(1)^2*s(2)+20*s(1)^2+4*s\
   (1)*s(2)^3+28*s(1)*s(2)^2+55*s(1)*s(2)+31*s(1)+4*s(2)^3+20*s(2)^2+31*s(2)\
   +15
// secondly we compute the ideal B_1:
setring R;
def S = BernsteinSatoIdeal(F,0,1);
==> // ** redefining S (def S = BernsteinSatoIdeal(F,0,1);)
setring S;
BS;
==> BS[1]=2*s(1)^2+2*s(1)*s(2)+5*s(1)+2*s(2)+3
// thirdly we compute the ideal B_sigma:
setring R;
def S = BernsteinSatoIdeal(F,0,-1);
==> // ** redefining S (def S = BernsteinSatoIdeal(F,0,-1);)
setring S;
BS;
==> BS[1]=2*s(1)*s(2)+2*s(1)+2*s(2)^2+5*s(2)+3
==> BS[2]=2*s(1)^2+3*s(1)-2*s(2)^2-3*s(2)