From 32e71e470e9469fa1c822f6e523435b33fcb8add Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Fri, 28 Nov 2014 13:37:49 -0600
Subject: [PATCH] More readable stringification for GA's nabla and components

---
 pymbolic/geometric_algebra/mapper.py | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/pymbolic/geometric_algebra/mapper.py b/pymbolic/geometric_algebra/mapper.py
index 6d242ea..d37909b 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))
-- 
GitLab