Home Online Manual
Top
Back: absfact_lib
Forward: absFactorizeBCG
FastBack:
FastForward:
Up: absfact_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

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 jth (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
See also: absPrimdecGTZ; factorize.