Igor Schein on Fri, 17 Jun 2005 18:47:15 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: Galois test |
On Fri, Jun 17, 2005 at 06:31:58PM +0200, Karim Belabas wrote: > * Igor Schein [2005-06-17 17:47]: > > On Fri, Jun 17, 2005 at 03:38:56PM +0200, Karim Belabas wrote: > >> * Ariel Pacetti [2005-06-17 13:56]: > >>> Is there a routine for checking wether a number field extension is Galois? > >>> I couldn´t find one, but probably there is some "naive" way to do that > >>> like: > >>> > >>> nffactor(nfinit(P),P) > >>> > >>> and check wether all the factors have degree one or not. Is there a better > >>> (or faster) way? (like no using nfinit which takes too long if the > >>> polynomial is big enough). > >> > >> There's no built-in routine. You may > >> > >> -- check factorisation pattern mod a few primes first, which quickly > >> weeds out (most) non-Galois fields. > >> > >> -- use nfroots instead of nffactor (smaller bounds used). > >> > >> -- possibly use factornf when you want to skip the 'nfinit' part. > >> > >> -- still use nfinit _but_ read > >> > >> http://www.math.u-psud.fr/~belabas/pari/doc/faq.html#nfpartialfact > >> > >> first. In particular the following hack is often helpful: > >> > >> nfinitpartial(P) = nfinit( [P, nfbasis(P,1)] ) > > > > I am using the following function: > > > > isgalois(pol, gal) = if(polisirreducible(pol),if(!gal,gal=nfgaloisconj(pol,4));if(#Set(gal)==poldegree(pol),return(1)));return(0) > > 1) This returns the wrong answer if the Galois group is not weakly super > solvable (it's OK in degree < 36, then...). True, but it'll give a warning, which is a good safeguard. The speed advantage for large polynomials is enormous though. > > 2) Why do you need #Set(gal) instead of #gal ? If only unique automorphisms are returned, then clearly it's not needed. Maybe I was in doubt about it back when I started using it. Igor