diff --git a/pyopencl/elementwise.py b/pyopencl/elementwise.py index 7b7f534040103f2f23735f85c92c1a29ea4c3ffb..694a735c4d70a8058dc0d6663a1113e9aeecd775 100644 --- a/pyopencl/elementwise.py +++ b/pyopencl/elementwise.py @@ -326,7 +326,8 @@ class ElementwiseTemplate(KernelTemplateBase): name=renderer(self.name), options=list(options), preamble=( type_decl_preamble - + "\n" + renderer(self.preamble + "\n" + more_preamble)), + + "\n" + + renderer(self.preamble + "\n" + more_preamble)), auto_preamble=False) # }}} diff --git a/pyopencl/scan.py b/pyopencl/scan.py index a56f6a07e6aaa7305934f3d567f82a61239e4273..9692233daca57ec19629c3e91c95d5dd65b97d91 100644 --- a/pyopencl/scan.py +++ b/pyopencl/scan.py @@ -1543,6 +1543,11 @@ class ScanTemplate(KernelTemplateBase): options=(), devices=None, scan_cls=GenericScanKernel): renderer = self.get_renderer(type_aliases, var_values, context, options) + arg_list = renderer.render_argument_list(self.arguments, more_arguments) + + type_decl_preamble = renderer.get_type_decl_preamble( + context.devices[0], declare_types, arg_list) + return scan_cls(context, renderer.type_aliases["scan_t"], renderer.render_argument_list(self.arguments, more_arguments), renderer(self.input_expr), renderer(self.scan_expr), renderer(self.neutral), @@ -1551,7 +1556,11 @@ class ScanTemplate(KernelTemplateBase): input_fetch_exprs=self.input_fetch_exprs, index_dtype=renderer.type_aliases.get("index_t", np.int32), name_prefix=renderer(self.name_prefix), options=list(options), - preamble=renderer(more_preamble+"\n"+self.preamble), devices=devices) + preamble=( + type_decl_preamble + + "\n" + + renderer(self.preamble + "\n" + more_preamble)), + devices=devices) # }}}