Author: stian Branch: improve-rbigint Changeset: r56345:dc6ff563855d Date: 2012-07-04 02:32 +0200 http://bitbucket.org/pypy/pypy/changeset/dc6ff563855d/
Log: Revert changes to _x_add and _x_sub, it didn't provide speedup. And potensially it'll bug. Also updated benchmark results diff --git a/pypy/rlib/rbigint.py b/pypy/rlib/rbigint.py --- a/pypy/rlib/rbigint.py +++ b/pypy/rlib/rbigint.py @@ -944,15 +944,12 @@ z.setdigit(i, carry) carry >>= SHIFT i += 1 - if i < size_a: + while i < size_a: carry += a.udigit(i) z.setdigit(i, carry) + carry >>= SHIFT i += 1 - while i < size_a: - z.setdigit(i, a.udigit(i)) - i += 1 - else: - z.setdigit(i, carry) + z.setdigit(i, carry) z._normalize() return z @@ -995,15 +992,13 @@ borrow >>= SHIFT borrow &= 1 # Keep only one sign bit i += 1 - if i < size_a: + while i < size_a: borrow = a.udigit(i) - borrow z.setdigit(i, borrow) + borrow >>= SHIFT + borrow &= 1 i += 1 - assert borrow >> 63 == 0 - - while i < size_a: - z.setdigit(i, a.udigit(i)) - i += 1 + assert borrow == 0 z._normalize() return z diff --git a/pypy/translator/goal/targetbigintbenchmark.py b/pypy/translator/goal/targetbigintbenchmark.py --- a/pypy/translator/goal/targetbigintbenchmark.py +++ b/pypy/translator/goal/targetbigintbenchmark.py @@ -47,20 +47,20 @@ A pure python form of those tests where also run Improved pypy | Pypy | CPython 2.7.3 - 0.0440728664398 2.82172012329 1.38699007034 - 0.1241710186 0.126130104065 8.17586708069 - 0.12434387207 0.124358177185 8.34655714035 - 0.0627701282501 0.0626962184906 4.88309693336 - 0.0636250972748 0.0626759529114 4.88519001007 - 1.20847392082 479.282402992 (forever, I yet it run for 5min before quiting) - 1.66941714287 (forever) (another forever) - 0.0701060295105 6.59566307068 8.29050803185 - 6.55810189247 12.1487128735 7.1309800148 - 7.59417295456 15.0498359203 11.733394146 - 0.00144410133362 2.13657021523 1.67227101326 - 5.06110692024 14.7546520233 9.05311799049 - 9.19830608368 17.0125601292 11.1488289833 - 5.40441417694 6.59027791023 3.63601899147 + 0.000210046768188 2.82172012329 1.38699007034 + 0.123202085495 0.126130104065 8.17586708069 + 0.123197078705 0.124358177185 8.34655714035 + 0.0616521835327 0.0626962184906 4.88309693336 + 0.0617570877075 0.0626759529114 4.88519001007 + 0.000902891159058 479.282402992 (forever, I yet it run for 5min before quiting) + 1.65824794769 (forever) (another forever) + 0.000197887420654 6.59566307068 8.29050803185 + 5.32597303391 12.1487128735 7.1309800148 + 6.45182704926 15.0498359203 11.733394146 + 0.000119924545288 2.13657021523 1.67227101326 + 3.96346402168 14.7546520233 9.05311799049 + 8.30484199524 17.0125601292 11.1488289833 + 4.99971699715 6.59027791023 3.63601899147 """ sumTime = 0.0 _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit