# Singular

##### 7.7.5.0. bFactor
Procedure from library `dmodapp.lib` (see dmodapp_lib).

Usage:
bFactor(f); f poly

Return:
list of ideal and intvec and possibly a string

Purpose:
tries to compute the roots of a univariate poly f

Note:
The output list consists of two or three entries:
roots of f as an ideal, their multiplicities as intvec, and,
if present, a third one being the product of all irreducible factors
of degree greater than one, given as string.
If f is the zero polynomial or if f has no roots in the ground field,
this is encoded as root 0 with multiplicity 0.

Display:
If printlevel=1, progress debug messages will be printed,
if printlevel>=2, all the debug messages will be printed.

Example:
 ```LIB "dmodapp.lib"; ring r = 0,(x,y),dp; bFactor((x^2-1)^2); ==> [1]: ==> _[1]=1 ==> _[2]=-1 ==> [2]: ==> 2,2 bFactor((x^2+1)^2); ==> [1]: ==> _[1]=0 ==> [2]: ==> 0 ==> [3]: ==> x4+2x2+1 bFactor((y^2+1/2)*(y+9)*(y-7)); ==> [1]: ==> _[1]=7 ==> _[2]=-9 ==> [2]: ==> 1,1 ==> [3]: ==> 2y2+1 bFactor(1); ==> [1]: ==> _[1]=0 ==> [2]: ==> 0 ==> [3]: ==> 1 bFactor(0); ==> [1]: ==> _[1]=0 ==> [2]: ==> 0 ==> [3]: ==> 0 ```