-from sage.all import *
-
def multidiv(f, gs):
r"""
Divide the multivariate polynomial ``f`` by the ordered list of
sage: x,y,z = R.gens()
sage: s = ZZ.random_element(1,5).abs()
sage: gs = [ R.random_element() for idx in range(s) ]
- sage: # hack for SageMath Trac #28855
- sage: f = R(R.random_element(ZZ.random_element(10).abs()))
+ sage: f = R.random_element(ZZ.random_element(10).abs())
sage: (qs, r) = multidiv(f,gs)
sage: r != 0 or f in R.ideal(gs)
True
sage: R = PolynomialRing(QQ, 'x,y,z')
sage: s = ZZ.random_element(1,5).abs()
sage: gs = [ R.random_element() for idx in range(s) ]
- sage: # hack for SageMath Trac #28855
- sage: f = R(R.random_element(ZZ.random_element(10).abs()))
+ sage: f = R.random_element(ZZ.random_element(10).abs())
sage: (qs, r) = multidiv(f,gs)
sage: r + sum( qs[i]*gs[i] for i in range(len(gs)) ) == f
True
sage: R = PolynomialRing(QQ,'x,y,z')
sage: gs = R.random_element().monomials()
sage: I = R.ideal(gs)
- sage: # hack for SageMath Trac #28855
- sage: f = R(I.random_element(ZZ.random_element(5).abs()))
+ sage: f = I.random_element(ZZ.random_element(5).abs())
sage: (qs, r) = multidiv(f, gs)
sage: r.is_zero()
True
while p != R.zero():
for i in range(0,s):
- division_occurred = false
+ 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).
if lt_r.is_zero():
qs[i] += factor
p -= factor*gs[i]
- division_occurred = true
+ division_occurred = True
break
if not division_occurred: