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