Re: Bug in maxima



Cyril Guyot <cyril@zoy.org> writes:

> It took less than a second and returned FALSE. I suspect it is not
> actually passing the first pseudo-prime test that Juergen mentioned 
> earlier. (Btw, what do you mean by pseudo-prime test? Is it just a
> regular Miller-Rabin test or something else? )

No, it just checks if N is a pseudo-prime (in the weakest sense) wrt
to base 3 and 13 (that's actually hardwired), i.e. 3^(N-1)=1 mod N and
13^(N-1)=1 mod N.  The same test is performed if you set the maxima
variable `modulus' to N.  This suggests an easy test for your
suspicion:

(C1) modulus:80630964769;
(D1)                              80630964769
(C2) modulus:80630965313;
(D2)                              80630965313
(C3) modulus:340282366762482138434845932244680310783;
(D3)                340282366762482138434845932244680310783

If you get some warning like

(C4) modulus:80630965311;
Warning: MODULUS being set to 80630965311, a non-prime.
(D4)                              80630965311

your suspicion is confirmed and this would indicate a gcl specific bug
in the lisp function `cexpt' (in the "MAXIMA" package) or in something
called by it.

Btw, it's me (not Juergen) who mentioned the pseudo-prime test (so
don't complain to him :-)

Wolfgang

-- 
wjenkner@inode.at