@@ -15,7 +15,7 @@ def _is_number(e):
1515 return False
1616
1717
18- class Term :
18+ cdef class Term:
1919 """ A monomial term consisting of one or more variables."""
2020
2121 __slots__ = (" vars" , " ptrs" )
@@ -46,7 +46,7 @@ class Term:
4646 def __repr__ (self ):
4747 return f" Term({', '.join(map(str, self.vars))})"
4848
49- def _evaluate (self , SCIP* scip , SCIP_SOL* sol ) -> float :
49+ cdef float _evaluate(self , SCIP* scip, SCIP_SOL* sol):
5050 if self .vars:
5151 return math.prod(SCIPgetSolVal(scip, sol, ptr) for ptr in self .ptrs)
5252 return 1.0 # constant term
@@ -231,7 +231,7 @@ cdef class SumExpr(Expr):
231231 def degree (self ):
232232 return float (" inf" )
233233
234- def _evaluate (self , SCIP* scip , SCIP_SOL* sol ) -> float :
234+ cdef float _evaluate(self , SCIP* scip, SCIP_SOL* sol):
235235 return _evaluate(self .children, scip, sol)
236236
237237
@@ -371,7 +371,7 @@ cdef class ProdExpr(FuncExpr):
371371 return ConstExpr(0.0)
372372 return self
373373
374- def _evaluate(self , SCIP* scip , SCIP_SOL* sol ) -> float :
374+ cdef float _evaluate(self , SCIP* scip , SCIP_SOL* sol ):
375375 return self .coef * _evaluate(self .children, scip, sol)
376376
377377
@@ -395,7 +395,7 @@ cdef class PowerExpr(FuncExpr):
395395 return tuple(self )[0]
396396 return self
397397
398- def _evaluate(self , SCIP* scip , SCIP_SOL* sol ) -> float :
398+ cdef float _evaluate(self , SCIP* scip , SCIP_SOL* sol ):
399399 return pow (_evaluate(self .children, scip, sol), self .expo)
400400
401401
@@ -411,7 +411,7 @@ cdef class UnaryExpr(FuncExpr):
411411 def __repr__ (self ):
412412 return f" {type(self).__name__}({tuple(self)[0]})"
413413
414- def _evaluate (self , SCIP* scip , SCIP_SOL* sol ) -> float :
414+ cdef float _evaluate(self , SCIP* scip, SCIP_SOL* sol):
415415 return self .op(_evaluate(self .children, scip, sol))
416416
417417
0 commit comments