From 05ab27d3e7ea2b24eecaaa942ec545f713fbe6ec Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Thu, 29 Mar 2012 01:11:14 -0400 Subject: [PATCH] Print specialized CSEs so they can be distinguished. --- pymbolic/mapper/__init__.py | 2 +- pymbolic/mapper/stringifier.py | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/pymbolic/mapper/__init__.py b/pymbolic/mapper/__init__.py index 9703993..a88e861 100644 --- a/pymbolic/mapper/__init__.py +++ b/pymbolic/mapper/__init__.py @@ -263,7 +263,7 @@ class IdentityMapperBase(object): if is_zero(result): return 0 - return expr.__class__( + return type(expr)( result, expr.prefix, **expr.get_extra_properties()) diff --git a/pymbolic/mapper/stringifier.py b/pymbolic/mapper/stringifier.py index 801bbd4..554ec80 100644 --- a/pymbolic/mapper/stringifier.py +++ b/pymbolic/mapper/stringifier.py @@ -186,7 +186,14 @@ class StringifyMapper(pymbolic.mapper.RecursiveMapper): return "array(\n%s)" % "".join(lines) def map_common_subexpression(self, expr, enclosing_prec): - return self.format("CSE(%s)", self.rec(expr.child, PREC_NONE)) + from pymbolic.primitives import CommonSubexpression + if type(expr) is CommonSubexpression: + type_name = "CSE" + else: + type_name = type(expr).__name__ + + return self.format("%s(%s)", + type_name, self.rec(expr.child, PREC_NONE)) def map_if_positive(self, expr, enclosing_prec): return "If(%s > 0, %s, %s)" % ( -- GitLab