Karim Belabas on Sun, 26 Nov 2017 21:37:42 +0100


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

Re: suppress warnings in GP


* Max Alekseyev [2017-11-26 18:21]:
> Is there a way to suppress warnings in GP like this one?
> 
> *** _^_: Warning: Mod(a,b)^n with n >> b : wasteful.

I just killed it in the 'master' branch, together with the section of
code which attempted to improve on user's programming in this case.

The warning meant that we were computing Mod(a,b)^n with b < 2^64 <= |n|.
It is usually the case that gcd(a,b) = 1, in which case n can
be reduced mod eulerphi(b); if not, the computation should be simplified
by using CRT. Etc.

Compare

  ? p=1009; n = 2^64+1; N = n%(p-1);
  ? for(i=2,10^5, Mod(i,p)^N)  \\ correct
  time = 30 ms.
  ? for(i=2,10^5, Mod(i,p)^n)  \\ silly => 6 times slower
  time = 190 ms.

The corresponding library code was complicated and error-prone (because of the
need to cater for gcd(a,b) > 1); I actually spotted an error when I
reviewed it because of your mail.

I decided it was not worth it, the recovery code and warning are both
gone: let users fix their code if they care about efficiency, they know best.

Cheers,

    K.B.
--
Karim Belabas, IMB (UMR 5251)  Tel: (+33) (0)5 40 00 26 17
Universite de Bordeaux         Fax: (+33) (0)5 40 00 21 23
351, cours de la Liberation    http://www.math.u-bordeaux.fr/~kbelabas/
F-33405 Talence (France)       http://pari.math.u-bordeaux.fr/  [PARI/GP]
`