# Singular

##### 7.7.2.0. bfct
Procedure from library `bfun.lib` (see bfun_lib).

Usage:
bfct(f [,s,t,v]); f a poly, s,t optional ints, v an optional intvec

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, the initial Malgrange ideal is computed according to
the algorithm by Masayuki Noro 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 s<>0, `std` is used for GB computations,
otherwise, and by default, `slimgb` is used.
If t<>0, a matrix ordering is used for Groebner basis computations,
otherwise, and by default, a block ordering is used.
If v is a positive weight vector, v is used for homogenization
computations, otherwise and by default, no weights are used.

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; bfct(f); ==> [1]: ==> _[1]=-5/6 ==> _[2]=-1 ==> _[3]=-7/6 ==> [2]: ==> 1,1,1 intvec v = 3,2; bfct(f,1,0,v); ==> [1]: ==> _[1]=-5/6 ==> _[2]=-1 ==> _[3]=-7/6 ==> [2]: ==> 1,1,1 ```