diff --git a/src/mapper/evaluator.py b/src/mapper/evaluator.py index b353d4b800a6c937adc9050c7c1256af94eda06e..dac5e051b9a23e0911883df7f4c924cd82a71edc 100644 --- a/src/mapper/evaluator.py +++ b/src/mapper/evaluator.py @@ -53,8 +53,9 @@ class EvaluationMapper(RecursiveMapper): return self.rec(expr.base) ** self.rec(expr.exponent) def map_polynomial(self, expr): + import pymbolic return pymbolic.sum( - coeff*expr.base**exp + self.rec(coeff)*self.rec(expr.base)**exp for exp,coeff in expr.data) def map_list(self, expr): @@ -76,6 +77,9 @@ class FloatEvaluationMapper(EvaluationMapper): def evaluate(expression, context={}): return EvaluationMapper(context)(expression) +def evaluate_kw(expression, **context): + return EvaluationMapper(context)(expression) + def evaluate_to_float(expression, context={}): return FloatEvaluationMapper(context)(expression)