diff --git a/arraycontext/impl/pytato/__init__.py b/arraycontext/impl/pytato/__init__.py index dfcdc233f66c3d2eba2880890be9a6302ecf124f..b4ac63e6f9c50f056706b7e7ed468de6bf0c62e6 100644 --- a/arraycontext/impl/pytato/__init__.py +++ b/arraycontext/impl/pytato/__init__.py @@ -123,6 +123,16 @@ class PytatoPyOpenCLArrayContext(ArrayContext): raise TypeError("PytatoPyOpenCLArrayContext.freeze invoked with " f"non-pytato array of type '{type(array)}'") + # {{{ early exit for 0-sized arrays + + if array.size == 0: + return cla.empty(self.queue.context, + shape=array.shape, + dtype=array.dtype, + allocator=self.allocator) + + # }}} + from arraycontext.impl.pytato.utils import _normalize_pt_expr normalized_expr, bound_arguments = _normalize_pt_expr(array)