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