From 9399fb7a90bfe3c5025b11f47cd016178ae487ac Mon Sep 17 00:00:00 2001 From: Kaushik Kulkarni <kaushikcfd@gmail.com> Date: Fri, 26 May 2023 10:11:32 -0500 Subject: [PATCH] Add logical_(and|not|or) to (BasePytato|PyOpenCL)ArrayContext --- arraycontext/impl/pyopencl/fake_numpy.py | 9 +++++++++ arraycontext/impl/pytato/fake_numpy.py | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/arraycontext/impl/pyopencl/fake_numpy.py b/arraycontext/impl/pyopencl/fake_numpy.py index 71af653..d989d45 100644 --- a/arraycontext/impl/pyopencl/fake_numpy.py +++ b/arraycontext/impl/pyopencl/fake_numpy.py @@ -259,6 +259,15 @@ class PyOpenCLFakeNumpyNamespace(LoopyBasedFakeNumpyNamespace): def not_equal(self, x, y): return rec_multimap_array_container(operator.ne, x, y) + def logical_or(self, x, y): + return rec_multimap_array_container(cl_array.logical_or, x, y) + + def logical_and(self, x, y): + return rec_multimap_array_container(cl_array.logical_and, x, y) + + def logical_not(self, x): + return rec_map_array_container(cl_array.logical_not, x) + # }}} # {{{ mathematical functions diff --git a/arraycontext/impl/pytato/fake_numpy.py b/arraycontext/impl/pytato/fake_numpy.py index 67dc60b..14d9a96 100644 --- a/arraycontext/impl/pytato/fake_numpy.py +++ b/arraycontext/impl/pytato/fake_numpy.py @@ -54,11 +54,12 @@ class PytatoFakeNumpyNamespace(LoopyBasedFakeNumpyNamespace): "sin", "cos", "tan", "arcsin", "arccos", "arctan", "sinh", "cosh", "tanh", "exp", "log", "log10", "sqrt", "abs", "isnan", "real", "imag", "conj", + "logical_not", }) _pt_multi_ary_funcs = frozenset({ "arctan2", "equal", "greater", "greater_equal", "less", "less_equal", - "not_equal", "minimum", "maximum", "where", + "not_equal", "minimum", "maximum", "where", "logical_and", "logical_or", }) def _get_fake_numpy_linalg_namespace(self): -- GitLab