Karim BELABAS on Tue, 4 Mar 2003 17:28:28 +0100 (MET)


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

Re: znstar() bug (gmp kernel)


On Tue, 4 Mar 2003, Bill Allombert wrote:
> On Mon, Mar 03, 2003 at 01:57:18AM -0500, Igor Schein wrote:
>> ? znstar(35962368471727496841722887);
>>   ***   impossible assignment I-->S
>>
>> I coudn't reproduce it without gmp or on Solaris.
>
> Well spotted! You found the only line in Gerhart code that assume
> that integers are MSW!
>  #ifdef LONG_IS_64BIT
> -  if (tf > 3 || (tf == 3 && bfffo((ulong)n[2]) < 5)) /* n too large */
> +  if (tf > 3 || (tf == 3 && bfffo(int_MSW(n)) < 5)) /* n too large */
>      return NULL;
>  #else  /* 32 bits */
> -  if (tf > 4 || (tf == 4 && bfffo((ulong)n[2]) < 5)) /* n too large */
> +  if (tf > 4 || (tf == 4 && bfffo(int_MSW(n)) < 5)) /* n too large */
>      return NULL;
>  #endif
>    /* now we have 5 < n < 2^59 */

I had a similar fix :-). Also, there's no point using bfffo to compare with a
constant [ modified in CVS ].

    Karim.

P.S: Btw, it's Gerhard [ Niklasch ].
-- 
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              http://www.math.u-psud.fr/~belabas/
F-91405 Orsay (France)            http://www.parigp-home.de/  [PARI/GP]