diff --git a/arraycontext/fake_numpy.py b/arraycontext/fake_numpy.py index 0b0cd04c91219a75748d2f35cf0d21ff6c6ee42b..0ca72bd93710364b577c455d6a0de6d14f8ac33e 100644 --- a/arraycontext/fake_numpy.py +++ b/arraycontext/fake_numpy.py @@ -183,7 +183,11 @@ class BaseFakeNumpyLinalgNamespace: ord = 2 if is_array_container(ary): - return sum([self.norm(subary, ord=ord)**ord + if ord == np.inf: + return max([self.norm(subary, ord=ord) + for _, subary in serialize_container(ary)]) + else: + return sum([self.norm(subary, ord=ord)**ord for _, subary in serialize_container(ary)]) ** (1/ord) if ary.size == 0: return 0 diff --git a/test/test_arraycontext.py b/test/test_arraycontext.py index fcf17c02e6cff4e86e1f2e97b525a4b91014baae..5623fedf15829d355f2351bf8e10d221436dc079 100644 --- a/test/test_arraycontext.py +++ b/test/test_arraycontext.py @@ -674,9 +674,6 @@ def test_container_freeze_thaw(actx_factory): def test_container_norm(actx_factory, ord): actx = actx_factory() - ary_dof, ary_of_dofs, mat_of_dofs, dc_of_dofs, bcast_dc_of_dofs = \ - _get_test_containers(actx) - from pytools.obj_array import make_obj_array c = MyContainer(name="hey", mass=1, momentum=make_obj_array([2, 3]), enthalpy=5) n1 = actx.np.linalg.norm(make_obj_array([c, c]), ord)