# Singular

#### D.4.1.1 absFactorize

Procedure from library `absfact.lib` (see absfact_lib).

Usage:
absFactorize(p [,s]); p poly, s string

Assume:
coefficient field is the field of rational numbers or a transcendental extension thereof

Return:
ring `R` which is obtained from the current basering by adding a new parameter (if a string `s` is given as a second input, the new parameter gets this string as name). The ring `R` comes with a list `absolute_factors` with the following entries:
 ``` absolute_factors[1]: ideal (the absolute factors) absolute_factors[2]: intvec (the multiplicities) absolute_factors[3]: ideal (the minimal polynomials) absolute_factors[4]: int (total number of nontriv. absolute factors) ```
The entry `absolute_factors[1][1]` is a constant, the entry `absolute_factors[3][1]` is the parameter added to the current ring.
Each of the remaining entries `absolute_factors[1][j]` stands for a class of conjugated absolute factors. The corresponding entry `absolute_factors[3][j]` is the minimal polynomial of the field extension over which the factor is minimally defined (its degree is the number of conjugates in the class). If the entry `absolute_factors[3][j]` coincides with `absolute_factors[3][1]`, no field extension was necessary for the `j`th (class of) absolute factor(s).

Note:
All factors are presented denominator- and content-free. The constant factor (first entry) is chosen such that the product of all (!) the (denominator- and content-free) absolute factors of `p` equals `p / absolute_factors[1][1]`.

Example:
 ```LIB "absfact.lib"; ring R = (0), (x,y), lp; poly p = (-7*x^2 + 2*x*y^2 + 6*x + y^4 + 14*y^2 + 47)*(5x2+y2)^3*(x-y)^4; def S = absFactorize(p) ; ==> ==> // 'absFactorize' created a ring, in which a list absolute_factors (the ==> // absolute factors) is stored. ==> // To access the list of absolute factors, type (if the name S was assign\ ed ==> // to the return value): ==> // setring(S); absolute_factors; ==> setring(S); absolute_factors; ==> [1]: ==> _[1]=1/21125 ==> _[2]=5*x+(a)*y ==> _[3]=x-y ==> _[4]=(-14a+19)*x+13*y2+(-7a+94) ==> [2]: ==> 1,3,4,1 ==> [3]: ==> _[1]=(a) ==> _[2]=(a2+5) ==> _[3]=(a) ==> _[4]=(7a2-6a-47) ==> [4]: ==> 12 ```