macsyma on Wed, 31 Jul 2019 03:43:08 +0200


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: nfgaloisconj


Thank you, Bill.

> nfsplittingaut


The following simple one seems to be slightly faster than it 
as far as experiments using x^n-1, polcyclo() and galoisgetpol().

G12p(f) =
{
  my(g = nfsplitting(f), d = poldegree(g),
     R = nfisincl(f, g), v = variable(f), P, N, M, G1, K, G2);
  forprime(p = 2, oo, P = polrootsmod(g, p)~;
           if(#P == d && Mod(poldisc(f), p), break));
  N = subst(R, v, P);
  M = Map(Mat([N[1]~, [1..poldegree(f)]~]));
  G1 = [Vecsmall([mapget(M, s)|s <- t])|t <- N];
  K = matinverseimage(matconcat(vector(d, i, subst(R, v, i))~), [1..d]~);
  G2 = [R*[K[s]|s <- Vec(t^(-1))]~|t <- G1];
  [G1, G2]
};

In what kind of case is it faster to use the quotient ring ?

macsyma