From 5d8207423ffd2c5ff8465cc69a4dcf52173c8c44 Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Tue, 19 Jun 2012 12:58:14 -0400
Subject: [PATCH] Fix array *= array. (reported by Andrew Miller)

---
 pyopencl/array.py | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/pyopencl/array.py b/pyopencl/array.py
index 999c4544..6ccb093f 100644
--- a/pyopencl/array.py
+++ b/pyopencl/array.py
@@ -627,8 +627,13 @@ class Array(object):
         self._axpbz(result, common_dtype.type(scalar), self, self.dtype.type(0))
         return result
 
-    def __imul__(self, scalar):
-        self._axpbz(self, scalar, self, self.dtype.type(0))
+    def __imul__(self, other):
+        if isinstance(other, Array):
+            self._elwise_multiply(self, self, other)
+        else:
+            # scalar
+            self._axpbz(self, other, self, self.dtype.type(0))
+
         return self
 
     def __div__(self, other):
-- 
GitLab