Karim Belabas on Wed, 27 Dec 2006 12:27:24 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: bug? |
* Bill Allombert [2006-12-22 18:32]: > On Fri, Dec 22, 2006 at 11:12:10AM -0600, Ariel Pacetti wrote: >> I don't know whether this is a bug or it is made on purpose, but in gp, >> the following happens: >> >> ? isprime(-3) >> %1 = 0 > > PARI 2.1 return 1 so it is probably a bug. Actually, when I wrote the isprime driver around Henri Cohen's APRCL code and BPSW pseudoprimality test (both new in 2.3), I changed it on purpose. 1) The docs say: "isprime(x): true (1) if x is a (proven) prime number". [ In 2.1, we had "true if x is a strong pseudo-prime" ] 2) The most common definition for a prime number is "a positive integer having exactly two divisors". [ I don't think a function isprimeidealofZ() would be that useful. One would include 0, also. ] On the other hand, (11:47) gp > isprime(-2) %1 = 0 (11:47) gp > isprime(-2,1) %2 = 1 (11:47) gp > ispseudoprime(-2) %3 = 1 (11:47) gp > ispseudoprime(-2,10) %4 = 1 %2 should definitely be 0. %4 follows precisely the old (partly broken: the number of compositeness tests should depend on the input size) implementation. Arguably, %2, %3 and %4 should also be changed to return 0, for consistency. %%%%%%%%%%%%%% Why do you need -3 to be reported as prime ? K.B. -- Karim Belabas Tel: (+33) (0)5 40 00 26 17 Universite Bordeaux 1 Fax: (+33) (0)5 40 00 69 50 351, cours de la Liberation http://www.math.u-bordeaux.fr/~belabas/ F-33405 Talence (France) http://pari.math.u-bordeaux.fr/ [PARI/GP]