From e15ac8acfd248f236b882be82cc4a934c31c9ef0 Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Sun, 29 Aug 2021 19:06:47 -0500
Subject: [PATCH] Add a feature flag for nonscalar broadcasting

---
 arraycontext/context.py                | 5 +++++
 arraycontext/impl/pyopencl/__init__.py | 4 ++++
 arraycontext/impl/pytato/__init__.py   | 4 ++++
 3 files changed, 13 insertions(+)

diff --git a/arraycontext/context.py b/arraycontext/context.py
index 3d2df31..9ffbe2a 100644
--- a/arraycontext/context.py
+++ b/arraycontext/context.py
@@ -355,6 +355,11 @@ class ArrayContext(ABC):
     def permits_inplace_modification(self):
         pass
 
+    # undocumented for now
+    @abstractproperty
+    def supports_nonscalar_broadcasting(self):
+        pass
+
 # }}}
 
 # vim: foldmethod=marker
diff --git a/arraycontext/impl/pyopencl/__init__.py b/arraycontext/impl/pyopencl/__init__.py
index 98f3ffc..cd9c02a 100644
--- a/arraycontext/impl/pyopencl/__init__.py
+++ b/arraycontext/impl/pyopencl/__init__.py
@@ -278,6 +278,10 @@ class PyOpenCLArrayContext(ArrayContext):
     def permits_inplace_modification(self):
         return True
 
+    @property
+    def supports_nonscalar_broadcasting(self):
+        return False
+
 # }}}
 
 # vim: foldmethod=marker
diff --git a/arraycontext/impl/pytato/__init__.py b/arraycontext/impl/pytato/__init__.py
index beaebc4..0f5ad12 100644
--- a/arraycontext/impl/pytato/__init__.py
+++ b/arraycontext/impl/pytato/__init__.py
@@ -227,3 +227,7 @@ class PytatoPyOpenCLArrayContext(ArrayContext):
     @property
     def permits_inplace_modification(self):
         return False
+
+    @property
+    def supports_nonscalar_broadcasting(self):
+        return True
-- 
GitLab