DecomPoly( pol )
DecomPoly( pol, "all" )
returns an ideal decomposition of the polynomial pol. An ideal decomposition is given by two polynomials g and h, such that pol divides (gcirc h). By the Galois correspondence any ideal decomposition corresponds to a block system of the Galois group. The polynomial g defines a subfield K(beta) of K(alpha) with h(alpha)=beta. The first form finds one ideal decomposition, while the second form finds all possible different ideal decompositions (i.e. all subfields).
gap> d:=DecomPoly(e.minpol); [ x^2 + 5, x^3 + 4*x ] gap> p:=x^6+108;; gap> d:=DecomPoly(p,"all"); [ [ x^2 + 108, x^3 ], [ x^3 + 108, x^2 ], [ x^3 - 186624, x^5 + 6*x^2 ], [ x^3 + 186624, x^5 - 6*x^2 ] ] gap> Value(d[1][1],d[1][2]); x^6 + 108
GAP 3.4.4