diff --git a/sumpy/codegen.py b/sumpy/codegen.py index 74b1a279347433b040c9e6ed3bd3f45dd4808490..20c48667651298600bc1fa5446f5020d189c764d 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -65,15 +65,20 @@ class SympyToPymbolicMapper(SympyToPymbolicMapperBase): # }}} + # {{{ complex handling -def complex_mangler(identifier, arg_dtypes): +def complex_mangler(target, identifier, arg_dtypes): """A function "mangler" to make casting to complex values digestible for :mod:`loopy`. See argument *function_manglers* to :func:`loopy.make_kernel`. """ + from loopy.target.pyopencl import PyOpenCLTarget + if not isinstance(target, PyOpenCLTarget): + raise NotImplementedError("Only the PyOpenCLTarget is supported as of now") + if identifier == "complex" and arg_dtypes == (np.dtype(np.float64),): return (np.dtype(np.complex128), "cdouble_fromreal", (np.dtype(np.float64),))