projects
/
linpy.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix Expression.__hash__
[linpy.git]
/
pypol
/
linear.py
diff --git
a/pypol/linear.py
b/pypol/linear.py
index
bd7037b
..
2c71c02
100644
(file)
--- a/
pypol/linear.py
+++ b/
pypol/linear.py
@@
-62,7
+62,7
@@
class Expression:
for symbol, coefficient in coefficients if coefficient != 0]
if len(coefficients) == 0:
return Constant(constant)
for symbol, coefficient in coefficients if coefficient != 0]
if len(coefficients) == 0:
return Constant(constant)
- elif len(coefficients) == 1:
+ elif len(coefficients) == 1
and constant == 0
:
symbol, coefficient = coefficients[0]
if coefficient == 1:
return Symbol(symbol)
symbol, coefficient = coefficients[0]
if coefficient == 1:
return Symbol(symbol)
@@
-271,7
+271,7
@@
class Expression:
self.constant == other.constant
def __hash__(self):
self.constant == other.constant
def __hash__(self):
- return hash((
self._coefficients
, self._constant))
+ return hash((
tuple(sorted(self._coefficients.items()))
, self._constant))
def _toint(self):
lcm = functools.reduce(lambda a, b: a*b // gcd(a, b),
def _toint(self):
lcm = functools.reduce(lambda a, b: a*b // gcd(a, b),