From db1a7d55f72b9d96dc2264e1d2659efaa55d231b Mon Sep 17 00:00:00 2001
From: Alexandru Fikl <alexfikl@gmail.com>
Date: Wed, 21 Jul 2021 13:47:11 -0500
Subject: [PATCH] add any and all to PyOpenCLArrayContext

---
 arraycontext/impl/pyopencl/fake_numpy.py | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/arraycontext/impl/pyopencl/fake_numpy.py b/arraycontext/impl/pyopencl/fake_numpy.py
index 01f80f3..01054ba 100644
--- a/arraycontext/impl/pyopencl/fake_numpy.py
+++ b/arraycontext/impl/pyopencl/fake_numpy.py
@@ -186,6 +186,28 @@ class PyOpenCLFakeNumpyNamespace(BaseFakeNumpyNamespace):
             result = result.get()[()]
         return result
 
+    def any(self, a):
+        queue = self._array_context.queue
+        result = rec_map_reduce_array_container(
+                partial(reduce, partial(cl_array.maximum, queue=queue)),
+                lambda subary: subary.any(queue=queue),
+                a)
+
+        if not self._array_context._force_device_scalars:
+            result = result.get()[()]
+        return result
+
+    def all(self, a):
+        queue = self._array_context.queue
+        result = rec_map_reduce_array_container(
+                partial(reduce, partial(cl_array.minimum, queue=queue)),
+                lambda subary: subary.all(queue=queue),
+                a)
+
+        if not self._array_context._force_device_scalars:
+            result = result.get()[()]
+        return result
+
 # }}}
 
 
-- 
GitLab