# Singular          ##### 7.5.2.0. bfctAnn
Procedure from library `bfun.lib` (see bfun_lib).

Usage:
bfctAnn(f [,a,b,c]); f a poly, a, b, c optional ints

Return:
list of ideal and intvec

Purpose:
computes the roots of the Bernstein-Sato polynomial b(s) for the
hypersurface defined by f.

Assume:
The basering is commutative and of characteristic 0.

Background:
In this proc, Ann(f^s) is computed and then a system of linear
equations is solved by linear reductions.

Note:
In the output list, the ideal contains all the roots and the intvec
their multiplicities.
If a<>0, only f is appended to Ann(f^s), otherwise, and by default,
f and all its partial derivatives are appended.
If b<>0, `std` is used for GB 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 "bfun.lib"; ring r = 0,(x,y),dp; poly f = x^2+y^3+x*y^2; bfctAnn(f); ==> : ==> _=-5/6 ==> _=-1 ==> _=-7/6 ==> : ==> 1,1,1 def R = reiffen(4,5); setring R; RC; // the Reiffen curve in 4,5 ==> xy4+y5+x4 bfctAnn(RC,0,1); ==> : ==> _=-9/20 ==> _=-11/20 ==> _=-13/20 ==> _=-7/10 ==> _=-17/20 ==> _=-9/10 ==> _=-19/20 ==> _=-1 ==> _=-21/20 ==> _=-11/10 ==> _=-23/20 ==> _=-13/10 ==> _=-27/20 ==> : ==> 1,1,1,1,1,1,1,1,1,1,1,1,1 ```

### Misc 