diff --git a/arraycontext/context.py b/arraycontext/context.py index 3d2df31fa64451e5afd153d182eb7be6044f88e8..9ffbe2a992ff4abb4d6f95ae142cad73e0d2a5ac 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 98f3ffc8161dfe3eb57369c21e110575a4145e58..cd9c02a2f963583f84930c98e0ada4c688344795 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 beaebc4b8592a869643cc83c57e55e75eedba386..0f5ad12f1147ca2cb19a6ee3ce6dafd9fc0e393a 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