# Singular          ##### 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*..*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^s_1*..*F[P]^s_p,
- the list or ideal BS is a Bernstein-Sato ideal of a polynomial f = F*..*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=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=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=2*s(1)*s(2)+2*s(1)+2*s(2)^2+5*s(2)+3 ==> BS=2*s(1)^2+3*s(1)-2*s(2)^2-3*s(2) ```

### Misc 