
sqrfree - square-free factorization of polynomials

Calling sequence:
sqrfree(poly)
sqrfree(expr)

Parameter:
poly   --  polynomial
expr   --  expression

Overloading:

1

Summary:

sqrfree calculates the square-free factorization of a multivariate polynomial.
The coefficient ring of the polynomial may be either the rationals, a residue
class ring IntMod(p) with prime number p, or a domain representing a unique
factorization domain of characteristic 0.

The argument of sqrfree may be either a polynomial or an expression.
An expression is converted into a polynomial (see function poly). sqrfree
returns FAIL if the expression cannot be converted.

sqrfree(a) returns the list [u, f1, e1, ..., fn, en] with a = u * f1^e1
* ...* fn^en, where the fi are the square-free factors of a and u is the
content of a. The fi are primitive and pairwise different.

>>  sqrfree(2-2*x-6*x^4+6*x^5+6*x^8-6*x^9-2*x^12+2*x^13);

      [2, 1+x+x^2+x^3, 3, x-1, 4]

>>  sqrfree(x^6+x^4*y*6+x^2*y^2*9);

      [1, x*y*3+x^3, 2]

>>  sqrfree(poly(2+5*x+4*x^2+x^3));

      [1, poly(x+2,[x]), 1, poly(x+1,[x]), 2]

See also:  poly, factor

