diff --git a/pymbolic/geometric_algebra/mapper.py b/pymbolic/geometric_algebra/mapper.py index 6d242ea9d763a6450e82087f60ec7700f33ef917..d37909b1fbe9ac61f59aeacad92fe9d6f3ccae72 100644 --- a/pymbolic/geometric_algebra/mapper.py +++ b/pymbolic/geometric_algebra/mapper.py @@ -1,3 +1,4 @@ +# * encoding: utf-8 * from __future__ import division from __future__ import absolute_import from six.moves import range @@ -93,11 +94,25 @@ class EvaluationMapper(EvaluationMapperBase): class StringifyMapper(StringifyMapperBase): + AXES = {0: "x", 1: "y", 2: "z"} + def map_nabla(self, expr, enclosing_prec): - return r"\/[%s]" % expr.nabla_id + import sys + if sys.version_info >= (3,): + return u"∇[%s]" % expr.nabla_id + else: + return r"\/[%s]" % expr.nabla_id def map_nabla_component(self, expr, enclosing_prec): - return r"d/dx%d[%s]" % (expr.ambient_axis, expr.nabla_id) + import sys + if sys.version_info >= (3,): + return u"∇%s[%s]" % ( + self.AXES.get(expr.ambient_axis, expr.ambient_axis), + expr.nabla_id) + else: + return r"\/%s[%s]" % ( + self.AXES.get(expr.ambient_axis, expr.ambient_axis), + expr.nabla_id) def map_derivative_source(self, expr, enclosing_prec): return r"D[%s](%s)" % (expr.nabla_id, self.rec(expr.operand, PREC_NONE))