From 1ec5b3386b561a262cfcd005f5ee9bd3ac2b1fd7 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Fri, 28 Nov 2014 13:39:56 -0600 Subject: [PATCH] Implement quotient handling in distributor --- pymbolic/mapper/distributor.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/pymbolic/mapper/distributor.py b/pymbolic/mapper/distributor.py index 8abf993..bc7be4d 100644 --- a/pymbolic/mapper/distributor.py +++ b/pymbolic/mapper/distributor.py @@ -25,7 +25,7 @@ THE SOFTWARE. import pymbolic from pymbolic.mapper import IdentityMapper from pymbolic.mapper.collector import TermCollector -from pymbolic.primitives import Sum, Product +from pymbolic.primitives import Sum, Product, is_zero class DistributeMapper(IdentityMapper): @@ -85,7 +85,14 @@ class DistributeMapper(IdentityMapper): return dist(IdentityMapper.map_product(self, expr)) def map_quotient(self, expr): - raise NotImplementedError + if is_zero(expr.numerator - 1): + return expr + else: + # not the smartest thing we can do, but at least *something* + return self.rec( + type(expr)(1, expr.denominator) + * + expr.numerator) def map_power(self, expr): from pymbolic.primitives import Sum -- GitLab