From 5f0916cfdfb25379b5f070a4d2e2d2ad221f222f Mon Sep 17 00:00:00 2001 From: Isuru Fernando <isuruf@gmail.com> Date: Sun, 17 Nov 2019 22:09:11 -0600 Subject: [PATCH] Use cartesian_product from pytools --- requirements.txt | 1 + sumpy/expansion/multipole.py | 12 +----------- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/requirements.txt b/requirements.txt index 8e48bc1c..8bd95658 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,3 +6,4 @@ git+https://github.com/inducer/pyopencl git+https://gitlab.tiker.net/inducer/boxtree git+https://github.com/inducer/loopy git+https://github.com/inducer/pyfmmlib +git+https://github.com/inducer/pytools diff --git a/sumpy/expansion/multipole.py b/sumpy/expansion/multipole.py index 7bcd0ed5..4f6ffe3e 100644 --- a/sumpy/expansion/multipole.py +++ b/sumpy/expansion/multipole.py @@ -29,6 +29,7 @@ from sumpy.symbolic import vector_xreplace from sumpy.expansion import ( ExpansionBase, VolumeTaylorExpansion, LaplaceConformingVolumeTaylorExpansion, HelmholtzConformingVolumeTaylorExpansion) +from pytools import cartesian_product import logging logger = logging.getLogger(__name__) @@ -47,17 +48,6 @@ class MultipoleExpansionBase(ExpansionBase): pass -def cartesian_product(*args): - if len(args) == 1: - for arg in args[0]: - yield (arg,) - return - first = args[:-1] - for prod in cartesian_product(*first): - for i in args[-1]: - yield prod + (i,) - - # {{{ volume taylor class VolumeTaylorMultipoleExpansionBase(MultipoleExpansionBase): -- GitLab