diff --git a/pyopencl/elementwise.py b/pyopencl/elementwise.py index bcf2fb54449d61b9f718d837b3c803975e7b2d2c..70ae34cd885d3974605d0e5dceae09ad56160ce7 100644 --- a/pyopencl/elementwise.py +++ b/pyopencl/elementwise.py @@ -42,7 +42,7 @@ def get_elwise_program(context, arguments, operation, name="elwise_kernel", keep=False, options=[], preamble="", loop_prep="", after_loop=""): from pyopencl import Program - return Program(context, """ + source = (""" %(preamble)s __kernel void %(name)s(%(arguments)s) @@ -68,7 +68,9 @@ def get_elwise_program(context, arguments, operation, "preamble": preamble, "loop_prep": loop_prep, "after_loop": after_loop, - }).build(options=" ".join(options)) + }) + + return Program(context, source).build(options=" ".join(options)) @@ -83,7 +85,9 @@ def get_elwise_kernel_and_types(context, arguments, operation, for arg in parsed_args: if numpy.float64 == arg.dtype: - preamble += "\n\n#pragma OPENCL EXTENSION cl_khr_fp64: enable\n" + preamble = ( + "#pragma OPENCL EXTENSION cl_khr_fp64: enable\n\n\n" + + preamble) break parsed_args.append(ScalarArg(numpy.uintp, "n"))