| Karim BELABAS on Thu, 7 Jan 1999 17:40:31 +0100 (MET) |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: bug in nfsubfields() |
[Igor:]
> another one of post-2.0.11 bugs:
>
> ? nfisincl(x^2-2,x^4-2*x^2+9)
> [-1/6*x^3 + 5/6*x, 1/6*x^3 - 5/6*x]
> ? nfsubfields(nfinit(x^4-2*x^2+9),2)
> []
[or polredabs(x^4-2*x^2+9) --> x^4 + 1 which obviously has 3 quadratic
subfields].
I simplified a (Hensel-type) bound, but forgot that the "power basis" we use
may have an index (here 24), which should also be taken into account. Here's
a patch.
Karim.
*** src/modules/subfield.c.orig Tue Dec 15 16:30:32 1998
--- src/modules/subfield.c Thu Jan 7 17:30:46 1999
***************
*** 507,516 ****
static GEN
embedding_of_potential_subfields(GEN nf,GEN g,GEN DATA,GEN rootsA,GEN delta)
{
! GEN w0_inQ,w0,w1,h0,gp,p2,f,unmodp,p,ind;
long av = avma, av1;
f=(GEN)nf[1]; ind=(GEN)nf[4]; p=(GEN)DATA[2];
gp=deriv(g,varn(g)); unmodp=gmodulsg(1,p);
av1 = avma;
w0 = interpolation_polynomial(gmul(rootsA,unmodp), delta);
--- 507,517 ----
static GEN
embedding_of_potential_subfields(GEN nf,GEN g,GEN DATA,GEN rootsA,GEN delta)
{
! GEN w0_inQ,w0,w1,h0,gp,p2,f,unmodp,p,ind, maxp;
long av = avma, av1;
f=(GEN)nf[1]; ind=(GEN)nf[4]; p=(GEN)DATA[2];
+ maxp=mulii((GEN)DATA[13],ind);
gp=deriv(g,varn(g)); unmodp=gmodulsg(1,p);
av1 = avma;
w0 = interpolation_polynomial(gmul(rootsA,unmodp), delta);
***************
*** 544,550 ****
fprintferr("Old Q-polynomial: "); outerr(w0_inQ);
fprintferr("New Q-polynomial: "); outerr(p2);
}
! if (cmpii(p, (GEN)DATA[13]) > 0)
{
if (DEBUGLEVEL) fprintferr("coeff too big for embedding\n");
avma=av; return gzero;
--- 545,551 ----
fprintferr("Old Q-polynomial: "); outerr(w0_inQ);
fprintferr("New Q-polynomial: "); outerr(p2);
}
! if (cmpii(p, maxp) > 0)
{
if (DEBUGLEVEL) fprintferr("coeff too big for embedding\n");
avma=av; return gzero;
--
Karim Belabas email: Karim.Belabas@math.u-psud.fr
Dep. de Mathematiques, Bat. 425
Universite Paris-Sud Tel: (00 33) 1 69 15 57 48
F-91405 Orsay (France) Fax: (00 33) 1 69 15 60 19
--
PARI/GP Home Page: http://pari.home.ml.org