From: Michael Orlitzky Date: Mon, 18 Feb 2019 18:56:28 +0000 (-0500) Subject: Revert "mjo/polynomial.py: improve multidiv performance a bit." X-Git-Url: http://gitweb.michael.orlitzky.com/?a=commitdiff_plain;h=e0b910b5ab926b37605a8f606fce3f13bbf827ab;p=sage.d.git Revert "mjo/polynomial.py: improve multidiv performance a bit." This reverts commit 4e4efc9eff5c77a2ca19002b1dfa45598e974c54. Example 4 in the text doesn't work with this implementation, but it does with my original one. Let's stick with slow and correct, for now. --- diff --git a/mjo/polynomial.py b/mjo/polynomial.py index 8b49371..2b8dc2a 100644 --- a/mjo/polynomial.py +++ b/mjo/polynomial.py @@ -171,9 +171,8 @@ def multidiv(f, gs): qs = [R.zero()]*s while p != R.zero(): - i = 0 - division_occurred = false - while i < s: + for i in range(0,s): + division_occurred = false # If gs[i].lt() divides p.lt(), then this remainder will # be zero and the quotient will be in R (and not the # fraction ring, which is important). @@ -182,13 +181,7 @@ def multidiv(f, gs): qs[i] += factor p -= factor*gs[i] division_occurred = true - # Don't increment "i" here because we want to try - # again with this "denominator" g[i]. We might - # get another factor out of it, but we know that - # we can't get another factor out of an *earlier* - # denominator g[i-k] for some k. - else: - i += 1 + break if not division_occurred: r += p.lt()