John Cremona on Tue, 07 Aug 2001 11:33:22 +0100


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

kro(a,q) vs. issquare()


Why is kro(a,q) very much faster (about 3 times) than issquare for
testing modular squares?

Example:  q=103; a=34; aa=Mod(a,q);

Now 
          for(j=1,10^6,t=issquare(aa));t
takes 9,839ms, while
          for(j=1,10^6,t=kro(a,q));t
takes only 3,670ms.

If it is because issquare() is also computing the root (returned through
an optional second argument) then there is still something wrong since
that does not work with this type:  issquare(aa,&b) gives the error
message   ***   not an integer argument in an arithmetic function

John

-- 
 Prof. J. E. Cremona             |
 University of Nottingham        | Tel.:  +44-115-9514920
 School of Mathematical Sciences | Fax:   +44-115-9514951
 University Park                 | Email: John.Cremona@nottingham.ac.uk 
 Nottingham NG7 2RD, UK          |