Karim BELABAS on Sat, 7 Sep 2002 15:39:31 +0200 (MEST)


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

Re: yet another rnfkummer() posting


On Thu, 5 Sep 2002, Igor Schein wrote:
> On Thu, Sep 05, 2002 at 04:41:41PM +0200, Karim BELABAS wrote:
> > On Thu, 5 Sep 2002, Igor Schein wrote:
> > > This one is gone now, but here's a different one:
> > >
> > > ? bnfisnorm(bnfinit(polsubcyclo(7,3)),[[;]]);
> > >   ***   bug in GP (Segmentation Fault), please report
> > >
> > > Stable version doesn't segfault.
> >
> > Yet another typo. Are we done with regressions now ? I'd like to release a
> > snapshot ASAP.
>
> Here's another regression:
>
> ? setrand(1603990204);rnfkummer(bnrinit(bnfinit(quadpoly(3413,y),1),25,1),[5,1;0,1]);
>   ***   bug in gadd, please report

[and a bit later:]
> ? setrand(279165716);rnfkummer(bnrinit(bnfinit(quadpoly(-231,y)),25,1),matdiagonal([5,1,1]))
>   ***   bug4 in kummer.

[and also:]
> ? setrand(1);rnfkummer(bnrinit(bnfinit(y^6-19*y^5-11*y^4-6*y^3-15*y^2-11*y+15,1),4 ,1),[2,1,1;0,1,0;0,0,1]);

These three are gone. Unfortunately, the fix was very complicated (affects
about 10 different files, buch[23].c being central...). Funny how many
undocumented assumptions you uncover when changing innocent looking-code [ it
was essential that the factorbase stored in bnf be sorted according to the
underlying rational primes ].

I'm afraid you will have to re-run your regression suite now.

At least the code is simpler now, the globals are gone, and a number of hacks
erradicated [ e.g I merged 4 different routines related to smooth elements
and their detection. The resulting code is about the same size as, or smaller
than, any of the previous 4 ones. Faster too. ]

Hopefully we're converging somewhere.

  Karim.

P.S: By the way:

> ? setrand(2);rnfkummer(bnrinit(bnfinit(quadpoly(-6580,y)),9,1),matdiagonal([3,1,1, 1]));
>   ***   not an Abelian extension in rnfnormgroup.

is not a regression. It's also broken in the stable version.

> ? \p400
>   realprecision = 404 significant digits (400 digits displayed)
> ? setrand(3);rnfkummer(bnrinit(bnfinit(quadpoly(2540,y),1),9,1),[3,1;0,1]);
>     ***   precision too low in isunit.

is bnfinit striking again, due to our cheating on Bach's constant:

  setrand(1414185642); bnf = bnfinit(y^4 + 635*y^2 + 403225,,[0.3]);

is incorrect [ regulator is twice too large, class group too small. 0.3 is the
default value ].

   setrand(1414185642); bnf = bnfinit(y^4 + 635*y^2 + 403225,,[0.4]);

is OK.
-- 
Karim Belabas                    Tel: (+33) (0)1 69 15 57 48
Dép. de Mathematiques, Bat. 425  Fax: (+33) (0)1 69 15 60 19
Université Paris-Sud             Email: Karim.Belabas@math.u-psud.fr
F-91405 Orsay (France)           http://www.math.u-psud.fr/~belabas/
--
PARI/GP Home Page: http://www.parigp-home.de/