From f6053339e199325aefec44af5266343ed1a0bd9b Mon Sep 17 00:00:00 2001
From: Matthias Diener <mdiener@illinois.edu>
Date: Wed, 16 Jun 2021 13:33:04 -0500
Subject: [PATCH] fix norm

---
 arraycontext/fake_numpy.py | 6 +++++-
 test/test_arraycontext.py  | 3 ---
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/arraycontext/fake_numpy.py b/arraycontext/fake_numpy.py
index 0b0cd04..0ca72bd 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 fcf17c0..5623fed 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)
-- 
GitLab