irreducible
-- test
irreducibility of a polynomialirreducible
(p)
tests if the polynomial
p
is irreducible.
irreducible(p)
p |
- | a polynomial of type
DOM_POLY or a polynomial expression |
p
content
, factor
, gcd
, icontent
, ifactor
, igcd
, ilcm
, isprime
, lcm
, poly
, polylib::divisors
, polylib::primpart
, polylib::sqrfree
irreducible
returns TRUE
if the
polynomial is irreducible over the field implied by its coefficients.
Otherwise, FALSE
is returned. See the function factor
for details on the
coefficient field that is assumed implicitly.IntMod(n)
with a prime number
n
) or a univariate polynomial over an algebraic extension
(see Dom::AlgebraicExtension
).DOM_POLY
before irreducibility
is tested.With the following call, we test if the polynomial expression x2 - 2 is irreducible. Implicitly, the coefficient field is assumed to consist of the rational numbers:
>> irreducible(x^2 - 2)
TRUE
>> factor(x^2 - 2)
2 x - 2
Since x2 - 2 factors over a field extension of the rationals containing the radical √2, the following irreducibility test is negative:
>> irreducible(sqrt(2)*(x^2 - 2))
FALSE
>> factor(sqrt(2)*(x^2 - 2))
1/2 1/2 1/2 2 (x + 2 ) (x - 2 )
The following calls use polynomials of type DOM_POLY
. The coefficient
field is given explicitly by the polynomials:
>> irreducible(poly(6*x^3 + 4*x^2 + 2*x - 4, IntMod(13)))
TRUE
>> factor(poly(6*x^3 + 4*x^2 + 2*x - 4, IntMod(13)))
3 2 6 poly(x + 5 x - 4 x - 5, [x], IntMod(13))
>> irreducible(poly(3*x^2 + 5*x + 2, IntMod(13)))
FALSE
>> factor(poly(3*x^2 + 5*x + 2, IntMod(13)))
3 poly(x + 5, [x], IntMod(13)) poly(x + 1, [x], IntMod(13))