From ecd8bdb60cc2a18997842f2fa5f9d5c751f03ab3 Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Thu, 21 Apr 2016 17:49:44 -0500
Subject: [PATCH] Support double-precision literals in ispc (really?!)

---
 loopy/target/ispc.py | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/loopy/target/ispc.py b/loopy/target/ispc.py
index 217678e82..57c220637 100644
--- a/loopy/target/ispc.py
+++ b/loopy/target/ispc.py
@@ -53,6 +53,24 @@ class LoopyISPCCodeMapper(LoopyCCodeMapper):
         else:
             raise LoopyError("ISPC only supports one local axis")
 
+    def map_constant(self, expr, enclosing_prec, type_context):
+        if isinstance(expr, (complex, np.complexfloating)):
+            raise NotImplementedError("complex numbers in ispc")
+        else:
+            if type_context == "f":
+                return repr(float(expr))
+            elif type_context == "d":
+                # Keepin' the good ideas flowin' since '66.
+                return repr(float(expr))+"d"
+            elif type_context == "i":
+                return str(int(expr))
+            else:
+                from loopy.tools import is_integer
+                if is_integer(expr):
+                    return str(expr)
+
+                raise RuntimeError("don't know how to generated code "
+                        "for constant '%s'" % expr)
 # }}}
 
 
-- 
GitLab