diff --git a/pyopencl/array.py b/pyopencl/array.py index 2aac16ea592734fccd5767c7e3d3830ce109ef28..9b28f17b103a6e9d896c7d80d4352b2788e76536 100644 --- a/pyopencl/array.py +++ b/pyopencl/array.py @@ -823,7 +823,7 @@ class Array(object): else: # add a scalar if other == 0: - return self + return self.copy() else: common_dtype = _get_common_dtype(self, other, self.queue) result = self._new_like_me(common_dtype) @@ -846,7 +846,7 @@ class Array(object): else: # subtract a scalar if other == 0: - return self + return self.copy() else: result = self._new_like_me( _get_common_dtype(self, other, self.queue)) @@ -927,7 +927,7 @@ class Array(object): self._div(result, self, other) else: if other == 1: - return self + return self.copy() else: # create a new array for the result common_dtype = _get_common_dtype(self, other, self.queue) @@ -1020,9 +1020,9 @@ class Array(object): return result def astype(self, dtype, queue=None): - """Return *self*, cast to *dtype*.""" + """Return a copy of *self*, cast to *dtype*.""" if dtype == self.dtype: - return self + return self.copy() result = self._new_like_me(dtype=dtype) self._copy(result, self, queue=queue)