diff --git a/pymbolic/interop/common.py b/pymbolic/interop/common.py index 3c5a163357bf463555bcd765925da47537c1435f..bb7529e3b0897f13d94a5754724d1e9efd0ac5a4 100644 --- a/pymbolic/interop/common.py +++ b/pymbolic/interop/common.py @@ -156,6 +156,9 @@ class PymbolicToSympyLikeMapper(EvaluationMapper): def map_constant(self, expr): return self.sym.sympify(expr) + def map_floor_div(self, expr): + return self.sym.floor(self.rec(expr.numerator) / self.rec(expr.denominator)) + def map_call(self, expr): if isinstance(expr.function, prim.Variable): func_name = expr.function.name diff --git a/test/test_sympy.py b/test/test_sympy.py index 3f45d312e6e96ae239fcdf2b974ebdb763fc2ace..e27fa7073dc616c81f551ecedd9f708ee069fc70 100644 --- a/test/test_sympy.py +++ b/test/test_sympy.py @@ -96,6 +96,8 @@ def _test_from_pymbolic(mapper, sym, use_symengine): sym.Subs(x**2, (x,), (y,)) deriv = sym.Derivative(x**2, x) assert mapper(prim.Derivative(x_**2, ("x",))) == deriv + floordiv = sym.floor(x / y) + assert mapper(prim.FloorDiv(x_, y_)) == floordiv if use_symengine: assert mapper(x_[0]) == sym.Function("Indexed")("x", 0)