irreducible -- test
irreducibility of a polynomial
Introductionirreducible(p) tests if the polynomial
p is irreducible.
Call(s)irreducible(p)
Parametersp |
- | a polynomial of type
DOM_POLY or a polynomial expression |
Returnsp
Related
Functionscontent, factor, gcd, icontent, ifactor, igcd, ilcm, isprime, lcm, poly, polylib::divisors, polylib::primpart, polylib::sqrfree
Detailsirreducible 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.
Example
1With 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))