## `irreducible` -- test irreducibility of a polynomial

#### Introduction

`irreducible``(p)` tests if the polynomial `p` is irreducible.

#### Call(s)

`irreducible(p)`

#### Parameters

`p` | - | a polynomial of type `DOM_POLY` or a polynomial expression

#### Returns

`TRUE` or `FALSE`.

### Overloadable:

`p`

#### Related Functions

`content`, `factor`, `gcd`, `icontent`, `ifactor`, `igcd`, `ilcm`, `isprime`, `lcm`, `poly`, `polylib::divisors`, `polylib::primpart`, `polylib::sqrfree`

#### Details

- A polynomial p in k[x1,..,xn] is irreducible over the field k if p is nonconstant and is not a product of two nonconstant polynomials in k[x1,..,xn].
- `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.
- The polynomial may be either a (multivariate) polynomial over the rationals, a (multivariate) polynomial over a field (such as the residue class ring `IntMod(n)` with a prime number `n`) or a univariate polynomial over an algebraic extension (see `Dom::AlgebraicExtension`).
- Internally, a polynomial expression is converted to a polynomial of type `DOM_POLY` before irreducibility is tested.

#### Example 1

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))

#### Changes

- no changes

Do you have questions or comments?
Copyright © SciFace Software GmbH & Co. KG 2000