Karim BELABAS on Thu, 12 Dec 2002 19:28:15 +0100 (MET)


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

Re: Preparing bugfix release 2.1.5


On Thu, 12 Dec 2002, Bill Allombert wrote:
> As some of you may have gathered form the CVS, I am preparing behind the scene
> a 2.1.5 bug fix release, so if you are aware of bugs in 2.1.4 that are not
> yet fixed in the CVS, please report them to me.
>
> I try to fix 2.2.4 F32:
>  32- polredabs fails to reduce
>    x^8-2*x^7-34*x^6+78*x^5+265*x^4-628*x^3-389*x^2+1237*x-449
>    [typo in chk_gen_init: skipfirst not initialized properly]
>
> I have some questions:
> 1) I do not thing the bracketed comment is accurate. I think the skipfirst
> problem was fixed a long time ago in 2.2.3 F28 and 2.1.4 F7.

It is correct, though not highly accurate. It is a "skipfirst" problem,
caused by a typo [ picking the first element of compositum(,) instead of the
last ], so that the skipfirst parameter was initialized with too large a
value.

[ skipfirst := the 'skipfirst' basis elements of the order generate a strict
subfield of the splitting field of the polynomial ]

> 2) The patch responsible of the fix is as follow:
>
> --- src/basemath/base1.c	2002/07/15 13:29:58	1.99
> +++ src/basemath/base1.c	2002/08/03 15:37:29	1.100
> @@ -1771,7 +1771,8 @@
>      if (prev && degpol(prev) < N && !gegal(prev,P))
>      {
>        if (degpol(prev) * degpol(P) > 64) continue; /* too expensive */
> -      P = (GEN)compositum(prev,P)[1];
> +      P = compositum(prev,P);
> +      P = (GEN)P[lg(P)-1];
>        if (degpol(P) == N) continue;
>        if (DEBUGLEVEL>2 && degpol(P) != degpol(prev))
>          fprintferr("chk_gen_init: subfield %Z\n",P);
>
> This assume the output of polcompositum is sorted by degree.

Indeed.

> Is it true for 2.1.4 ?

Yes. [ sort_factor() called at the end of compositum()->factor()->factpol() ]

> Here the current list of bugs in 2.2 that may need to be investigated in 2.1

(18:40) vintsy-karim% diff -ru pari pari.stable | wc
 142277  642902 4589839

Given the differences between the two branches, I would stick to absolute
minimal changes until we merge them, which should be done ASAP. The source
code is more or less stable now, but we have ideas/material for further
massive changes. So I guess we should freeze it now and postpone:

* Ilya's sizeof(long) and t_EXT patches
* your description system + gmp kernel patches
* install() support on MacOS X  [ too bad, it nearly works now... ]

so that we can add and debug them at the _beginning_ of the next development
cycle ?

I can prepare a final 2.2.5 snapshot for later this evening [ had been
meaning to do it anyway, only need to tune t_REAL Karatsuba multiplication,
and include Ilya's final readline patches ].

Assuming all is well, we can freeze to 2.2.6-beta just before Christmas
holidays, say.

Opinions ?

    Karim.
-- 
Karim Belabas                    Tel: (+33) (0)1 69 15 57 48
Dép. de Mathématiques, Bât. 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/