[pypy-commit] pypy default: ~1% speedup to GCD.
Stian Andreassen
pypy.commits at gmail.com
Thu Jul 11 05:26:19 EDT 2019
Author: Stian Andreassen
Branch:
Changeset: r96962:f138227813b8
Date: 2019-07-10 22:41 +0200
http://bitbucket.org/pypy/pypy/changeset/f138227813b8/
Log: ~1% speedup to GCD.
diff --git a/rpython/rlib/rbigint.py b/rpython/rlib/rbigint.py
--- a/rpython/rlib/rbigint.py
+++ b/rpython/rlib/rbigint.py
@@ -3013,7 +3013,7 @@
a, b = b, a
while b.size > 1:
- a_ms = a.digit(a.size-1)
+ a_ms = a.digit(abs(a.size-1))
x = 0
while a_ms & (0xFF << SHIFT-8) == 0:
@@ -3024,12 +3024,12 @@
a_ms <<= 1
x += 1
- a_ms |= a.digit(a.size-2) >> SHIFT-x
+ a_ms |= a.digit(abs(a.size-2)) >> SHIFT-x
if a.size == b.size:
- b_ms = (b.digit(b.size-1) << x) | (b.digit(b.size-2) >> SHIFT-x)
+ b_ms = (b.digit(abs(b.size-1)) << x) | (b.digit(abs(b.size-2)) >> SHIFT-x)
elif a.size == b.size+1:
- b_ms = b.digit(b.size-1) >> SHIFT-x
+ b_ms = b.digit(abs(b.size-1)) >> SHIFT-x
else:
b_ms = 0
More information about the pypy-commit
mailing list