summaryrefslogtreecommitdiff
path: root/scipy/base/polynomial.py
diff options
context:
space:
mode:
Diffstat (limited to 'scipy/base/polynomial.py')
-rw-r--r--scipy/base/polynomial.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/scipy/base/polynomial.py b/scipy/base/polynomial.py
index ffdaa5849..46522c8c5 100644
--- a/scipy/base/polynomial.py
+++ b/scipy/base/polynomial.py
@@ -307,9 +307,17 @@ def polydiv(a1, a2):
"""Computes q and r polynomials so that a1(s) = q(s)*a2(s) + r(s)
"""
truepoly = (isinstance(a1, poly1d) or isinstance(a2, poly1d))
- q, r = deconvolve(a1, a2)
+ monDivisor = NX.asarray(a2) / a2[0]
+ dividend = NX.asarray(a1) / a2[0]
+ q = []
+ r = dividend
+ while len(r) >= len(monDivisor):
+ q.append(r[0])
+ r = polysub(r, polymul(q, monDivisor))[1:]
+ q = NX.asarray(q)
while NX.allclose(r[0], 0, rtol=1e-14) and (r.shape[-1] > 1):
r = r[1:]
+ r *= a2[0]
if truepoly:
q, r = map(poly1d, (q, r))
return q, r