From 20903c9277c013b8e27fe2bb05ed1622bacb03d0 Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Wed, 15 Dec 2010 18:03:39 -0500
Subject: [PATCH] Insert fp64 enable at *beginning* of preamble.

---
 pyopencl/elementwise.py | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/pyopencl/elementwise.py b/pyopencl/elementwise.py
index bcf2fb54..70ae34cd 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"))
-- 
GitLab