> > This patch can speed up function call 'primes(1, 10^7);' > by 20%.
OK. > diff --git a/src/algebra/integer.spad b/src/algebra/integer.spad > index a5689694..924ba6db 100644 > --- a/src/algebra/integer.spad > +++ b/src/algebra/integer.spad > @@ -183,6 +183,18 @@ > -- TT := InnerModularGcd(%, ZP, 67108859 pretend %, myNextPrime) > -- gcdPolynomial(p, q) == modularGcd(p, q)$TT > > + -- copied from IntegerNumberSystem to get inline optimization, > + -- speeds up functions like 'primes' > + powmod(x, n, p) == > + if negative? x then x := positiveRemainder(x, p) > + zero? x => 0 > + zero? n => 1 > + y : % := 1 > + z := x > + repeat > + if odd? n then y := mulmod(y, z, p) > + zero?(n := shift(n, -1)) => return y > + z := mulmod(z, z, p) > > )abbrev domain NNI NonNegativeInteger > ++ Author: > > -- > You received this message because you are subscribed to the Google Groups > "FriCAS - computer algebra system" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at https://groups.google.com/group/fricas-devel. > For more options, visit https://groups.google.com/d/optout. > -- Waldek Hebisch -- You received this message because you are subscribed to the Google Groups "FriCAS - computer algebra system" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/fricas-devel. For more options, visit https://groups.google.com/d/optout.
