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