Karim Belabas on Sat, 16 Jul 2011 12:44:42 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: znlog() behavior |
* Max Alekseyev [2011-07-16 11:51]: > It seems that the actual reason is that 2^67-1 is a product of two > primes as has no primitive root. > Would it be more natural and intuitive if znprimroot() complained about that? You can have that : ? Fp_primroot(p)= if(!isprime(p), error(p, " is not prime")); znprimroot(p); ? Fp_primroot(2^67-1) *** at top-level: Fp_primroot(2^67-1) *** ^------------------- *** in function Fp_primroot: if(!isprime(p),error(p," is not pri *** ^-------------------- *** user error: 147573952589676412927 is not prime But there's a price to pay : ? p = nextprime(2^67) ? for(i=1,10^4, znprimroot(p)) time = 1,845 ms. ? for(i=1,10^4, Fp_primroot(p)) time = 7,372 ms. Your choice :-) Cheers, K.B. -- Karim Belabas, IMB (UMR 5251) 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-bordeaux1.fr/~belabas/ F-33405 Talence (France) http://pari.math.u-bordeaux1.fr/ [PARI/GP] `