From a6d6235203a86cb555e1dce2cc0be1d95dbcfe9c Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Sun, 28 Jun 2015 18:53:57 -0500 Subject: [PATCH] Don't assume quad-precision is available (mainly for numpypy) --- loopy/frontend/fortran/__init__.py | 6 ++++++ loopy/frontend/fortran/translator.py | 6 ++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/loopy/frontend/fortran/__init__.py b/loopy/frontend/fortran/__init__.py index 2626069a0..efdd07e8a 100644 --- a/loopy/frontend/fortran/__init__.py +++ b/loopy/frontend/fortran/__init__.py @@ -82,6 +82,9 @@ def _extract_loopy_lines(source): raise LoopyError("non-comment source line in loopy block") remaining_lines.append(l) + + # Preserves line numbers in loopy code, for debuggability + loopy_lines.append("# "+l) continue cmt = comment_match.group(1) @@ -103,6 +106,9 @@ def _extract_loopy_lines(source): else: remaining_lines.append(l) + # Preserves line numbers in loopy code, for debuggability + loopy_lines.append("# "+l) + return "\n".join(remaining_lines), "\n".join(loopy_lines) diff --git a/loopy/frontend/fortran/translator.py b/loopy/frontend/fortran/translator.py index eaa2de681..97005cab6 100644 --- a/loopy/frontend/fortran/translator.py +++ b/loopy/frontend/fortran/translator.py @@ -300,16 +300,18 @@ class F2LoopyTranslator(FTreeWalkerBase): TYPE_MAP = { ("real", "4"): np.float32, ("real", "8"): np.float64, - ("real", "16"): np.float128, ("complex", "8"): np.complex64, ("complex", "16"): np.complex128, - ("complex", "32"): np.complex256, ("integer", ""): np.int32, ("integer", "4"): np.int32, ("integer", "8"): np.int64, } + if hasattr(np, "float128"): + TYPE_MAP[("real", "16")] = np.float128 + if hasattr(np, "complex256"): + TYPE_MAP[("complex", "32")] = np.complex256 def dtype_from_stmt(self, stmt): length, kind = stmt.selector -- GitLab