2 from polynomial
import Poly
5 """Returns a polynomial with lexicographic order of terms. """
6 return Poly(*args
, **{ 'order' : 'lex' })
8 from algorithms
import poly_div
, poly_pdiv
, poly_groebner
, poly_lcm
, poly_gcd
, \
9 poly_half_gcdex
, poly_gcdex
, poly_sqf
, poly_resultant
, poly_subresultants
, \
12 from rootfinding
import poly_factors
, poly_sturm
14 def poly_quo(f
, g
, *symbols
):
15 """Wrapper for poly_div() """
16 return poly_div(f
, g
, *symbols
)[0]
18 def poly_rem(f
, g
, *symbols
):
19 """Wrapper for poly_div() """
20 return poly_div(f
, g
, *symbols
)[1]
22 def poly_pquo(f
, g
, *symbols
):
23 """Wrapper for poly_pdiv() """
24 return poly_pdiv(f
, g
, *symbols
)[0]
26 def poly_prem(f
, g
, *symbols
):
27 """Wrapper for poly_pdiv() """
28 return poly_pdiv(f
, g
, *symbols
)[1]
30 def _conv_args(n
, args
):
33 if len(symbols
) == 1 and isinstance(symbols
[0], (tuple, list)):
34 return args
[:n
] + tuple(symbols
[0])
38 def _map_basic(f
, n
, *args
, **kwargs
):
39 result
= f(*_conv_args(n
, args
), **kwargs
)
41 if isinstance(result
, (list, tuple, set)):
42 return result
.__class
__(g
.as_basic() for g
in result
)
44 return result
.as_basic()
67 def %s(*args, **kwargs):
68 return _map_basic(poly_%s, %d, *args, **kwargs)
70 %s.__doc__ = poly_%s.__doc__
73 for _func
, _n
in _funcs
.iteritems():
74 exec _func_def
% (_func
, _func
, _n
, _func
, _func
)
76 def div(*args
, **kwargs
):
77 q
, r
= poly_div(*_conv_args(2, args
), **kwargs
)
79 if type(q
) is not list:
82 q
= [ p
.as_basic() for p
in q
]
84 return q
, r
.as_basic()
86 div
.__doc
__ = poly_div
.__doc
__