polylib::primpart -- primitive
part of a polynomial
Introductionpolylib::primpart(f) returns the primitive
part of the polynomial f.
Call(s)polylib::primpart(f)
polylib::primpart(q)
polylib::primpart(xpr <inds>)
Parametersf |
- | polynomial |
q |
- | rational number |
xpr |
- | expression |
inds |
- | list of identifiers |
Returnspolylib::primpart returns an object of the same type as
the input, or FAIL.
Related
Functionscontent, factor, gcd, icontent, irreducible
Detailspolynomial, the greatest common divisor of
its coefficients is removed. The function gcd must be able to calculate this
gcd.polylib::primpart returns FAIL if the expression cannot be
converted into a polynomial.
Example
1In the following example, a bivariate polynomial is given. Its coefficients are the integers 3, 6, and 9; the primitive part is obtained by dividing the polynomial by their gcd.
>> polylib::primpart(poly(6*x^3*y + 3*x*y + 9*y, [x, y]));
3
poly(2 x y + x y + 3 y, [x, y])
However, consider the same polynomial viewed as a
univariate polynomial in x. Its coefficients are
polynomials in y in this case, and their gcd
3*y is divided off.
>> polylib::primpart(poly(6*x^3*y + 3*x*y + 9*y, [x]));
3
poly(2 x + x + 3, [x])
Example
2polylib::primpart divides the coefficients
by their gcd, but does not normalize the result. This must be done
explicitly:
>> polylib::primpart(4*x*y + 6*x^3 + 6*x*y^2 + 9*x^3*y, [x])
3 2
x (9 y + 6) x (4 y + 6 y )
------------ + --------------
3 y + 2 3 y + 2
>> normal(polylib::primpart(4*x*y + 6*x^3 + 6*x*y^2 + 9*x^3*y, [x]))
3
2 x y + 3 x
Backgroundprimpart