From d6bcf99324f21e8a056df8d1679a009b10ddeea5 Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Wed, 6 Jan 2016 17:45:45 -0600
Subject: [PATCH] Make constant folder in distributor customizable

---
 pymbolic/mapper/distributor.py | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/pymbolic/mapper/distributor.py b/pymbolic/mapper/distributor.py
index fd32405..7b6efa3 100644
--- a/pymbolic/mapper/distributor.py
+++ b/pymbolic/mapper/distributor.py
@@ -42,9 +42,14 @@ class DistributeMapper(IdentityMapper):
         7*x**6 + 21*x**5 + 21*x**2 + 35*x**3 + 1 + 35*x**4 + 7*x + x**7
     """
 
-    def __init__(self, collector=TermCollector()):
+    def __init__(self, collector=None, const_folder=None):
+        if collector is None:
+            collector = TermCollector()
+        if const_folder is None:
+            const_folder = CommutativeConstantFoldingMapper()
+
         self.collector = collector
-        self.const_folder = CommutativeConstantFoldingMapper()
+        self.const_folder = const_folder
 
     def collect(self, expr):
         return self.collector(self.const_folder(expr))
-- 
GitLab