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


_______________________________________________
Forum mailing list
[email protected]
https://mail.gap-system.org/mailman/listinfo/forum

Reply via email to