[Up] [Previous] [Next] [Index]

# 2 Functionality of the Package

### Sections

1. Methods for Rational Polynomials
2. Solving a Polynomial by Radicals

## 2.1 Methods for Rational Polynomials

- `IsSolvable(` f`)`
- `IsSolvablePolynomial(` f`)`

  returns `true` if the rational polynomial f has a solvable Galois group and `false` otherwise. It signals an error if there exists an irreducible factor with degree greater than 15.

  For a rational polynomial f

- `SplittingField(` f`)`

  returns the smallest field, constructed with `FieldByPolynomial` (see Creation of number fields in Alnuth), that contains all roots of f.

      gap> x := Indeterminate( Rationals, "x" );;
      gap> f := UnivariatePolynomial( Rationals, [1,3,4,1] );
      x^3+4*x^2+3*x+1
      gap> L := SplittingField( f );
      <field in characteristic 0>
      gap> y := Indeterminate( L, "y" );;
      gap> g := UnivariatePolynomial( L, One(L) * [1,3,4,1] );
      y^3+!4*y^2+!3*y+!1
      gap> Factors( g );
      [ y+(-168/47-535/94*a-253/94*a^2-24/47*a^3-3/94*a^4),
        y+(336/47+488/47*a+253/47*a^2+48/47*a^3+3/47*a^4),
        y+(20/47-441/94*a-253/94*a^2-24/47*a^3-3/94*a^4) ]
      gap> FactorsPolynomialKant( f, L );
      [ y+(-168/47-535/94*a-253/94*a^2-24/47*a^3-3/94*a^4),
        y+(20/47-441/94*a-253/94*a^2-24/47*a^3-3/94*a^4),
        y+(336/47+488/47*a+253/47*a^2+48/47*a^3+3/47*a^4) ]

  To factorize a polynomial over its splitting field one has to embed the polynomial first, as seen in the example, or use `FactorsPolynomialKant` (see Alnuth) instead of `Factors`. The primitive elment of the splitting field is always denoted by `a`.

- `GaloisGroupOnRoots(` f`)`

  calculates the Galois group G of the rational polynomial f as a permutation group with respect to the ordering of the roots of f given as matrices in G!.roots.

  If you only want to get the Galois group itself it is often better to use the function `GaloisType` (see Chapter Polynomials over the Rationals in the GAP reference manual).

  ## 2.2 Solving a Polynomial by Radicals

- `RootsOfPolynomialAsRadicals(` f`)`

  computes a solution by radicals for the irreducible, rational polynomial f up to degree 15 if this is possible, i. e. if the Galoisgroup of f is solvable, and returns `fail` otherwise. The result is displayed in form of a dvi-file. Additionally a record rec is returned which contains the Galois group of f in the component `galgrp` and the splitting field. The Galois group is presented as permutation group on the roots which are available as list of matrices in ``rec`.galgrp!.roots`. The splitting field is given in two forms; on the one hand the matrix field `K` generated by the roots and on the other hand an algebraic number field `H` created by the defining polynomial of the matrix field. The component ``rec`.K!.cyclics` provides a list of pairs whose first entries are matrices which define the splitting field by gradual, cyclic extensions and whose second entries give the degree of the according extension. For the computation a root of unity that lies in the matrix field is used and can be found in ``rec`.K!.unity`

  The computation may last very long and doesn't finish for every example if the degree of f is greater than 7.

- `RootsOfPolynomialAsRadicalsNC(` f`,` display`)`

  has the advantage that it can be used for polynomials with arbitrary degree. It does essentially the same as `RootsOfPolynomialAsRadicals` except that you can choose whether you want to create a dvi-file and display it or not by setting the boolean display. The function performs no test whether the polynomial f is irreducible. It also doesn't check at the beginning if f is solvable.

  [Up] [Previous] [Next] [Index]