>>> import nzmath.poly.uniutil as uniutil
>>> import nzmath.rational as rational
>>> Q = rational.theRationalField
>>> f = uniutil.polynomial({1:3}, Q)
>>> const = uniutil.polynomial({0:3}, Q)
>>> g = uniutil.polynomial({0:const}, const.getRing())
>>> g + f
UniqueFactorizationDomainPolynomial([(0, FieldPolynomial([(0, 3)], RationalField
())), (1, 3)], PolynomialRingAnonymousVariable(RationalField()))
The example above works well.
But the example below raise TypeError.
Also the similar subtraction or multiplication do.
This is because f is a scalar for g.
>>> f + g
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/naoki/sf/nzmath/poly/uniutil.py", line 1353, in __add__
return univar.SortedPolynomial.__add__(self, other)
File "/home/naoki/sf/nzmath/poly/univar.py", line 466, in __add__
return self.__class__(sorted, _sorted=True, **self._init_kwds)
File "/home/naoki/sf/nzmath/poly/uniutil.py", line 1485, in __init__
RingPolynomial.__init__(self, coefficients, coeffring, _sorted, **kwds)
File "/home/naoki/sf/nzmath/poly/uniutil.py", line 1324, in __init__
coefficients = [(d, coeffring.createElement(c)) for (d, c) in coefficients.i
teritems()]
File "/home/naoki/sf/nzmath/rational.py", line 463, in createElement
return Rational(numerator, denominator)
File "/home/naoki/sf/nzmath/rational.py", line 54, in __init__
raise TypeError("Rational cannot be created with %s(%s) and %s(%s)." % (nume
rator, numerator.__class__, denominator, denominator.__class__))
TypeError: Rational cannot be created with FieldPolynomial([(0, 3)], RationalFie
ld())(<class 'nzmath.poly.uniutil.FieldPolynomial'>) and 1(<type 'int'>).
Logged In: YES
user_id=1541133
Originator: NO
| >>> g + f
| UniqueFactorizationDomainPolynomial([(0, FieldPolynomial([(0, 3)],
| RationalField
| ())), (1, 3)], PolynomialRingAnonymousVariable(RationalField()))
|
| The example above works well.
The constant term is a polynomial while degree 1 term coefficient is a rational.
Do you really think it IS WORKING?
possible solution?
Logged In: YES
user_id=1541133
Originator: NO
File Added: uniutil-1940092.patch
and its expectation
Logged In: YES
user_id=1541133
Originator: NO
File Added: testUniutil-1940092.patch