Author: stian
Branch: math-improvements
Changeset: r92915:28ef9f10c404
Date: 2017-11-03 15:34 +0100
http://bitbucket.org/pypy/pypy/changeset/28ef9f10c404/

Log:    Speed up division slightly

diff --git a/rpython/rlib/rbigint.py b/rpython/rlib/rbigint.py
--- a/rpython/rlib/rbigint.py
+++ b/rpython/rlib/rbigint.py
@@ -2168,12 +2168,13 @@
         if j >= size_v:
             vtop = 0
         else:
-            vtop = v.widedigit(j)
-        assert vtop <= wm1
-        vv = (vtop << SHIFT) | v.widedigit(abs(j-1))
+            vtop = v.widedigit(j) << SHIFT
+        #assert vtop <= wm1
+        vv = vtop | v.widedigit(abs(j-1))
         q = vv / wm1
-        r = vv - wm1 * q
-        while wm2 * q > ((r << SHIFT) | v.widedigit(abs(j-2))):
+        r = vv % wm1 # This seems to be slightly faster than on widen digits 
than vv - wm1 * q.
+        vj2 = v.widedigit(abs(j-2))
+        while wm2 * q > ((r << SHIFT) | vj2):
             q -= 1
             r += wm1
 
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to