[GAP Forum] the size of Galois group of a rational polynomial

macsyma macsyma at yahoo.co.jp
Mon Jul 29 06:13:42 BST 2019


Dear GAP Forum,

I'm looking for a quick way to get the size of Galois group of an irreducible integer polynomial f (to speed up PARI's function nfsplitting).
The method I'm currently trying is what we call "local method" comparing the information of the factorization of f modulo prime numbers with the data of the cyclic index polynomials generated from TransGrp. Here is my PARI/GP's code:

cnt(M) = [[ss, #select(tt -> ss == tt, M)]|ss <- Set(M)];
fast_nfsplitting(f) =
{
  my(d = poldegree(f));
  if(d <= 37 && (d-24)*(d-30)*(d-32)*(d-36) <> 0 && polisirreducible(f),
    my(dc = poldisc(f), P = 0, L = List([]), fd, ci, ds, ans, dd,
       CId = CI[d]); /* CI is a list s.t. [[[ 1/2*x_1^2+1/2*x_2, 1 ]],
       [[ 1/3*x_1^3+2/3*x_3, 1 ],[ 1/6*x_1^3+1/2*x_1*x_2+1/3*x_3, 1 ]], ...] */
    forprime(p = 2, 10^3,
      if(Mod(dc, p) <> 0,
        listput(L, fd = factormod(f, p, 1)[, 1]~);
        if(#fd == d, P++;if(P == 3, break))));
    ci = vecsum([vecprod([eval(concat("x_", j))|j <- s[1]])*s[2]|s <- cnt(L)])/#L;
    ds = vecmin([norml2(s[1]-ci)|s <- CId],&j);ans = CId[j];
    print([ds*1., dd = 1/polcoef(ans[1], d, x_1), ans[2]]);
    nfsplitting(f, dd),
  nfsplitting(f))
};
/* for(i = 2, 20, fast_nfsplitting(x^i-2));
time = 960 ms.*/

However, in the case of DegreeAction = 24, 30, 32, 36,
it takes a considerable amount of time to generate the CycleIndex data files by my GAP's code:

tst := function(G)
  local s;
  if IsSolvable(G) then s:=1; else s:=0; fi;
  return([CycleIndex(G),s]);
end;;

for n in [2..37] do
  fn := Concatenation("./CI.",String(n));
  PrintTo(fn, "[");
  L := AllTransitiveGroups(DegreeAction, n);
  for G in L do AppendTo(fn, tst(G), ","); od;
  AppendTo(fn, "]");
  # After this, reshape using sed etc.
od;;

and even if all the data is obtained, it will be huge so it will take time to search.
Is there any other better way to get the size of Galois group of f?


macsyma




More information about the Forum mailing list