Karim BELABAS on Wed, 17 Mar 1999 16:06:30 +0100 (MET)


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

Re: another factorff() bug?


[Igor:]
> the following hits what appears to be an infinite loop:
> 
> factorff(x^3-x-1,11,y^2-y-1)				

Bad input.

(15:59) gp > factormod(y^2-y-1, 11)
%1 = 
[Mod(1, 11)*y + Mod(3, 11) 1]

[Mod(1, 11)*y + Mod(7, 11) 1]

factorff doesn't know how to factor over etale algebras. It assumes it is
working over a field.

>From the help:
  factorization  in  the  field  F_q defined by the irreducible polynomial a
                                                    ^^^^^^^^^^^
  over F_p

> Also, I noticed this:
> 
> ? ffinit(nextprime(2^31),2)
>   ***   impossible assignment I-->S
> 
> I would guess the C-int limit on primes in ffinit() and factorff() is
> there on purpose, but I don't see it mentioned anywhere in the manual.

I added a note there. After the following cosmetic patch, one gets:

(16:02) gp > ffinit(nextprime(2^32), 2)
  ***   prime field too big in ffinit.

Karim.

*** src/modules/subfield.c.orig Fri Mar  5 08:52:43 1999
--- src/modules/subfield.c      Wed Mar 17 15:39:48 1999
***************
*** 794,799 ****
--- 794,800 ----
    GEN pol,fpol;
  
    if (n<=0) err(talker,"non positive degree in ffinit");
+   if (is_bigint(p)) err(talker,"prime field too big in ffinit");
    if (v<0) v = 0;
    av=avma; pp=itos(p); pol = cgetg(n+3,t_POL);
    pol[1] = evalsigne(1)|evalvarn(v)|evallgef(n+3);

--
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://hasse.mathematik.tu-muenchen.de/ntsw/pari/