| Karim BELABAS on Wed, 20 Jan 1999 14:06:28 +0100 (MET) |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: bug in nfsubfields() - revisited |
[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)
> > []
>
> Even after the patch, nfsubfields() fails to work for some
> polynomials. I came up with x^6 - 2*x^5 + 2*x^3 + 7*x^2 - 8*x + 13
> This one has index=533.
>
> So the pattern continues to be polynomials with cyclotomic subfield
> and a high index ( last time it was index=24 ).
[Later]
> Actually, I found another polynomial, this time with a small index=16:
>
> ? nfsubfields(nfinit(x^4+3*x^2+16),2)
> []
The bound was correct this time, except I was forgetting to make a final test
when we reach it. Hopefully it is correct this time.
This corrects the two examples above.
Karim.
*** src/modules/subfield.c.orig Fri Jan 8 11:42:07 1999
--- src/modules/subfield.c Wed Jan 20 14:02:19 1999
***************
*** 538,545 ****
p1 = gneg(gmul(h0, poleval(g,w0)));
w1 = gres(gmul(unmodp,gadd(w0,p1)), f);
p2 = retrieve_p_adique_polynomial_in_Q(ind,w1);
! if (gegal(p2, w0_inQ) && gdivise(poleval(g, w0_inQ), f))
! return gerepileupto(av, poleval(w0_inQ, gadd(polx[0],stoi(TR))));
if (DEBUGLEVEL>2)
{
fprintferr("Old Q-polynomial: "); outerr(w0_inQ);
--- 538,545 ----
p1 = gneg(gmul(h0, poleval(g,w0)));
w1 = gres(gmul(unmodp,gadd(w0,p1)), f);
p2 = retrieve_p_adique_polynomial_in_Q(ind,w1);
! if ((gegal(p2, w0_inQ) || cmpii(p,maxp)) && gdivise(poleval(g,p2), f))
! return gerepileupto(av, poleval(p2, gadd(polx[0],stoi(TR))));
if (DEBUGLEVEL>2)
{
fprintferr("Old Q-polynomial: "); outerr(w0_inQ);
--
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