Skip to content

Commit ff82bde

Browse files
committed
Drop Variable.__hash__
1 parent a56aee7 commit ff82bde

2 files changed

Lines changed: 5 additions & 11 deletions

File tree

src/pyscipopt/expr.pxi

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ cdef class Term:
108108

109109
def __init__(self, *vartuple: Variable):
110110
self.vartuple = tuple(sorted(vartuple, key=lambda v: v.getIndex()))
111-
self.hashval = <Py_ssize_t>hash(self.vartuple)
111+
self.hashval = <Py_ssize_t>hash(v.ptr() for v in self.vartuple)
112112

113113
def __getitem__(self, idx):
114114
return self.vartuple[idx]
@@ -132,7 +132,7 @@ cdef class Term:
132132
for i in range(n):
133133
var1 = <Variable>PyTuple_GET_ITEM(self.vartuple, i)
134134
var2 = <Variable>PyTuple_GET_ITEM(_other.vartuple, i)
135-
if hash(var1) != hash(var2):
135+
if var1.ptr() != var2.ptr():
136136
return False
137137
return True
138138

@@ -153,7 +153,7 @@ cdef class Term:
153153
while i < n1 and j < n2:
154154
var1 = <Variable>PyTuple_GET_ITEM(self.vartuple, i)
155155
var2 = <Variable>PyTuple_GET_ITEM(other.vartuple, j)
156-
if var1.ptr() <= var2.ptr():
156+
if var1.getIndex() <= var2.getIndex():
157157
vartuple[k] = var1
158158
i += 1
159159
else:
@@ -171,7 +171,7 @@ cdef class Term:
171171

172172
cdef Term res = Term.__new__(Term)
173173
res.vartuple = tuple(vartuple)
174-
res.hashval = <Py_ssize_t>hash(res.vartuple)
174+
res.hashval = <Py_ssize_t>hash(v.ptr() for v in res.vartuple)
175175
return res
176176

177177
def __repr__(self):

src/pyscipopt/scip.pxi

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1564,14 +1564,8 @@ cdef class Variable(Expr):
15641564
cname = bytes( SCIPvarGetName(self.scip_var) )
15651565
return cname.decode('utf-8')
15661566

1567-
def __hash__(self):
1568-
return <size_t>(self.scip_var)
1569-
15701567
def ptr(self):
1571-
return self.__hash__()
1572-
1573-
def __richcmp__(self, other, int op):
1574-
return _expr_richcmp(self, other, op)
1568+
return <size_t>(self.scip_var)
15751569

15761570
def __repr__(self):
15771571
return self.name

0 commit comments

Comments
 (0)