diff --git a/examples/curve-pot.py b/examples/curve-pot.py index 06ce7aeb49f1df96bc1a9278dc6700f10ee08efd..777c53eeac9dfaf7413cf896d19f782882957cbe 100644 --- a/examples/curve-pot.py +++ b/examples/curve-pot.py @@ -1,4 +1,5 @@ from __future__ import division +from __future__ import absolute_import import pyopencl as cl import numpy as np import numpy.linalg as la diff --git a/examples/curve.py b/examples/curve.py index 1a7be77f9cc7d3b83c869c2215067251e9881f20..36031c3e0fb239a06e18442dcc671ecd86a77f17 100644 --- a/examples/curve.py +++ b/examples/curve.py @@ -1,4 +1,5 @@ from __future__ import division +from __future__ import absolute_import import numpy as np import scipy as sp diff --git a/examples/fourier.py b/examples/fourier.py index 5c94ce1817660f0201e6c0750d9b1d9db665c3d3..4c71097054bec5fe72524f8bfbb091987097f847 100644 --- a/examples/fourier.py +++ b/examples/fourier.py @@ -1,4 +1,5 @@ from __future__ import division +from __future__ import absolute_import import numpy as np diff --git a/sumpy/__init__.py b/sumpy/__init__.py index 04bdb31823c9da64b15ded4beffb3d761a2de598..8f9c87b0d75ffdcd653a2c5aebcdd2e62cbd2131 100644 --- a/sumpy/__init__.py +++ b/sumpy/__init__.py @@ -1,4 +1,5 @@ from __future__ import division +from __future__ import absolute_import __copyright__ = "Copyright (C) 2013 Andreas Kloeckner" diff --git a/sumpy/assignment_collection.py b/sumpy/assignment_collection.py index 0e97c1cc68fc0f728e4a44ef2fe027e0224e60d7..bc9feeb5ed844f9624074c5dc26eba3d2f5f9e3b 100644 --- a/sumpy/assignment_collection.py +++ b/sumpy/assignment_collection.py @@ -1,4 +1,7 @@ from __future__ import division +from __future__ import absolute_import +import six +from six.moves import zip __copyright__ = "Copyright (C) 2012 Andreas Kloeckner" @@ -143,7 +146,7 @@ class SymbolicAssignmentCollection(object): def __str__(self): return "\n".join( "%s <- %s" % (name, expr) - for name, expr in self.assignments.iteritems()) + for name, expr in six.iteritems(self.assignments)) def get_all_dependencies(self, var_name): """Including recursive dependencies.""" @@ -228,7 +231,7 @@ class SymbolicAssignmentCollection(object): rejected_assignments = [] from sumpy.symbolic import is_assignment_nontrivial - for name, value in self.assignments.iteritems(): + for name, value in six.iteritems(self.assignments): if name in self.user_symbols or is_assignment_nontrivial(name, value): approved_assignments.append((name, value)) else: diff --git a/sumpy/codegen.py b/sumpy/codegen.py index ac746fcc091084f0ea1d324729d2cac9a466284a..6f1c1d35de75e0a63285ae17121661b2ddf0adf5 100644 --- a/sumpy/codegen.py +++ b/sumpy/codegen.py @@ -1,4 +1,6 @@ from __future__ import division +from __future__ import absolute_import +from six.moves import range __copyright__ = "Copyright (C) 2012 Andreas Kloeckner" diff --git a/sumpy/e2e.py b/sumpy/e2e.py index 85ee93e3d50f6d2d9252ce742169db39f1339b2f..1a05da963bdad0a09b53841800affe6fd436c0b4 100644 --- a/sumpy/e2e.py +++ b/sumpy/e2e.py @@ -1,4 +1,7 @@ from __future__ import division +from __future__ import absolute_import +import six +from six.moves import range __copyright__ = "Copyright (C) 2013 Andreas Kloeckner" @@ -65,7 +68,7 @@ class E2EBase(KernelCacheWrapper): dvec = make_sympy_vector("d", self.dim) src_coeff_exprs = [sp.Symbol("src_coeff%d" % i) - for i in xrange(len(self.src_expansion))] + for i in range(len(self.src_expansion))] from sumpy.assignment_collection import SymbolicAssignmentCollection sac = SymbolicAssignmentCollection() @@ -80,7 +83,7 @@ class E2EBase(KernelCacheWrapper): from sumpy.symbolic import kill_trivial_assignments assignments = kill_trivial_assignments([ (name, expr) - for name, expr in sac.assignments.iteritems()], + for name, expr in six.iteritems(sac.assignments)], retain_names=tgt_coeff_names) from sumpy.codegen import to_loopy_insns @@ -170,8 +173,8 @@ class E2EFromCSR(E2EBase): name=self.name, assumptions="ntgt_boxes>=1", defines=dict( dim=self.dim, - SRC_COEFFIDX=[str(i) for i in xrange(ncoeff_src)], - TGT_COEFFIDX=[str(i) for i in xrange(ncoeff_tgt)], + SRC_COEFFIDX=[str(i) for i in range(ncoeff_src)], + TGT_COEFFIDX=[str(i) for i in range(ncoeff_tgt)], ), silenced_warnings="write_race(write_expn*)") @@ -268,7 +271,7 @@ class E2EFromChildren(E2EBase): defines=dict( dim=self.dim, nchildren=2**self.dim, - COEFFIDX=[str(i) for i in xrange(ncoeffs)], + COEFFIDX=[str(i) for i in range(ncoeffs)], ), silenced_warnings="write_race(write_expn*)") @@ -354,7 +357,7 @@ class E2EFromParent(E2EBase): defines=dict( dim=self.dim, nchildren=2**self.dim, - COEFFIDX=[str(i) for i in xrange(ncoeffs)], + COEFFIDX=[str(i) for i in range(ncoeffs)], ), silenced_warnings="write_race(write_expn*)") diff --git a/sumpy/e2p.py b/sumpy/e2p.py index 2cbbd61a74b8063742ce5c0370a62a36b513b286..87db30397ce9804edf6f2a062c3a86a452ff380a 100644 --- a/sumpy/e2p.py +++ b/sumpy/e2p.py @@ -1,4 +1,7 @@ from __future__ import division +from __future__ import absolute_import +import six +from six.moves import range __copyright__ = "Copyright (C) 2013 Andreas Kloeckner" @@ -66,7 +69,7 @@ class E2PBase(KernelCacheWrapper): sac = SymbolicAssignmentCollection() coeff_exprs = [sp.Symbol("coeff%d" % i) - for i in xrange(len(self.expansion.get_coefficient_identifiers()))] + for i in range(len(self.expansion.get_coefficient_identifiers()))] value = self.expansion.evaluate(coeff_exprs, bvec) result_names = [ sac.assign_unique("result_%d_p" % i, @@ -79,7 +82,7 @@ class E2PBase(KernelCacheWrapper): from sumpy.symbolic import kill_trivial_assignments assignments = kill_trivial_assignments([ (name, expr) - for name, expr in sac.assignments.iteritems()], + for name, expr in six.iteritems(sac.assignments)], retain_names=result_names) from sumpy.codegen import to_loopy_insns @@ -149,8 +152,8 @@ class E2PFromSingleBox(E2PBase): name=self.name, assumptions="ntgt_boxes>=1", defines=dict( dim=self.dim, - COEFFIDX=[str(i) for i in xrange(ncoeffs)], - RESULTIDX=[str(i) for i in xrange(len(result_names))], + COEFFIDX=[str(i) for i in range(ncoeffs)], + RESULTIDX=[str(i) for i in range(len(result_names))], nresults=len(result_names), ), silenced_warnings="write_race(write_result*)") @@ -239,8 +242,8 @@ class E2PFromCSR(E2PBase): name=self.name, assumptions="ntgt_boxes>=1", defines=dict( dim=self.dim, - COEFFIDX=[str(i) for i in xrange(ncoeffs)], - RESULTIDX=[str(i) for i in xrange(len(result_names))], + COEFFIDX=[str(i) for i in range(ncoeffs)], + RESULTIDX=[str(i) for i in range(len(result_names))], nresults=len(result_names), ), silenced_warnings="write_race(write_result*)") diff --git a/sumpy/expansion/__init__.py b/sumpy/expansion/__init__.py index 9eb04f6012d43757805311222a41092e6a21e46e..7e4848f2d367423cababdd8c0d7df4b6c01ed02f 100644 --- a/sumpy/expansion/__init__.py +++ b/sumpy/expansion/__init__.py @@ -1,4 +1,5 @@ from __future__ import division +from __future__ import absolute_import __copyright__ = "Copyright (C) 2012 Andreas Kloeckner" diff --git a/sumpy/expansion/local.py b/sumpy/expansion/local.py index 5f4e2da2d4ddcb41cfe43d1af00e52059612a1c4..f70cbe41556ee17204fe309ce7d28c842846eb9b 100644 --- a/sumpy/expansion/local.py +++ b/sumpy/expansion/local.py @@ -1,4 +1,7 @@ from __future__ import division +from __future__ import absolute_import +from six.moves import range +from six.moves import zip __copyright__ = "Copyright (C) 2012 Andreas Kloeckner" @@ -41,7 +44,7 @@ class LineTaylorLocalExpansion(LocalExpansionBase): return k def get_coefficient_identifiers(self): - return range(self.order+1) + return list(range(self.order+1)) def coefficients_from_source(self, avec, bvec): if bvec is None: @@ -120,7 +123,7 @@ class H2DLocalExpansion(LocalExpansionBase): return self.order+k def get_coefficient_identifiers(self): - return range(-self.order, self.order+1) + return list(range(-self.order, self.order+1)) def coefficients_from_source(self, avec, bvec): from sumpy.symbolic import sympy_real_norm_2 diff --git a/sumpy/expansion/multipole.py b/sumpy/expansion/multipole.py index 1d6a289a3b52f4cb687b4e91113f4aff6f257041..19deba913c77731ea473459616c3ad5bba13a58a 100644 --- a/sumpy/expansion/multipole.py +++ b/sumpy/expansion/multipole.py @@ -1,4 +1,7 @@ from __future__ import division +from __future__ import absolute_import +from six.moves import range +from six.moves import zip __copyright__ = "Copyright (C) 2012 Andreas Kloeckner" @@ -55,7 +58,7 @@ class VolumeTaylorMultipoleExpansion( coeff_identifiers = self.get_coefficient_identifiers() result = [0] * len(coeff_identifiers) - for idim in xrange(kernel.dim): + for idim in range(kernel.dim): for i, mi in enumerate(coeff_identifiers): if mi[idim] == 0: continue @@ -115,7 +118,7 @@ class VolumeTaylorMultipoleExpansion( contrib = src_coeff_exprs[src_index] - for idim in xrange(self.dim): + for idim in range(self.dim): n = tgt_mi[idim] k = src_mi[idim] assert n >= k @@ -144,7 +147,7 @@ class H2DMultipoleExpansion(MultipoleExpansionBase): return self.order+k def get_coefficient_identifiers(self): - return range(-self.order, self.order+1) + return list(range(-self.order, self.order+1)) def coefficients_from_source(self, avec, bvec): from sumpy.symbolic import sympy_real_norm_2 diff --git a/sumpy/fmm.py b/sumpy/fmm.py index 92a5c2e2fce4b633e918687f219369d95f4d9b65..8a3b2042e13f437e7b7a47718b40d84c57bef768 100644 --- a/sumpy/fmm.py +++ b/sumpy/fmm.py @@ -1,4 +1,6 @@ from __future__ import division +from __future__ import absolute_import +from six.moves import zip __copyright__ = "Copyright (C) 2013 Andreas Kloeckner" diff --git a/sumpy/kernel.py b/sumpy/kernel.py index 1cfc58ffb94ad50bb78f0ea35cd2ace9949ebc6e..b29e6237c760a4ffb45a7fce7e87386160f2719b 100644 --- a/sumpy/kernel.py +++ b/sumpy/kernel.py @@ -1,4 +1,7 @@ from __future__ import division +from __future__ import absolute_import +from six.moves import range +from six.moves import zip __copyright__ = "Copyright (C) 2012 Andreas Kloeckner" diff --git a/sumpy/p2e.py b/sumpy/p2e.py index 444f7c33cb59364ba265e0dd27629e58c6ad5cf2..0632738456b014521e5b0c9c411ae8d3ba3c4b8a 100644 --- a/sumpy/p2e.py +++ b/sumpy/p2e.py @@ -1,4 +1,7 @@ from __future__ import division +from __future__ import absolute_import +import six +from six.moves import range __copyright__ = "Copyright (C) 2013 Andreas Kloeckner" @@ -71,7 +74,7 @@ class P2EBase(KernelCacheWrapper): from sumpy.symbolic import kill_trivial_assignments assignments = kill_trivial_assignments([ (name, expr) - for name, expr in sac.assignments.iteritems()], + for name, expr in six.iteritems(sac.assignments)], retain_names=coeff_names) from sumpy.codegen import to_loopy_insns @@ -131,7 +134,7 @@ class P2EFromSingleBox(P2EBase): name=self.name, assumptions="nsrc_boxes>=1", defines=dict( dim=self.dim, - COEFFIDX=[str(i) for i in xrange(ncoeffs)] + COEFFIDX=[str(i) for i in range(ncoeffs)] ), silenced_warnings="write_race(write_expn*)") @@ -220,7 +223,7 @@ class P2EFromCSR(P2EBase): name=self.name, assumptions="ntgt_boxes>=1", defines=dict( dim=self.dim, - COEFFIDX=[str(i) for i in xrange(ncoeffs)] + COEFFIDX=[str(i) for i in range(ncoeffs)] ), silenced_warnings="write_race(write_expn*)") diff --git a/sumpy/p2p.py b/sumpy/p2p.py index c86c1e1d368b31fdf4f73bd943f040d2ebfdd1e1..47557760d27dfb57ced87ef8aae757f2e458e79f 100644 --- a/sumpy/p2p.py +++ b/sumpy/p2p.py @@ -1,4 +1,7 @@ from __future__ import division +from __future__ import absolute_import +import six +from six.moves import range __copyright__ = "Copyright (C) 2012 Andreas Kloeckner" @@ -71,7 +74,7 @@ class P2PBase(KernelComputation, KernelCacheWrapper): sac.run_global_cse() from sumpy.codegen import to_loopy_insns - loopy_insns = to_loopy_insns(sac.assignments.iteritems(), + loopy_insns = to_loopy_insns(six.iteritems(sac.assignments), vector_names=set(["d"]), pymbolic_expr_maps=[knl.transform_to_code for knl in self.kernels], complex_dtype=np.complex128 # FIXME @@ -139,7 +142,7 @@ class P2P(P2PBase): ] + gather_loopy_source_arguments(self.kernels), name=self.name, assumptions="nsources>=1 and ntargets>=1", defines=dict( - KNLIDX=range(len(exprs)), + KNLIDX=list(range(len(exprs))), dim=self.dim, nstrengths=self.strength_count, nresults=len(self.kernels), @@ -254,7 +257,7 @@ class P2PFromCSR(P2PBase): ] + gather_loopy_source_arguments(self.kernels), name=self.name, assumptions="ntgt_boxes>=1", defines=dict( - KNLIDX=range(len(exprs)), + KNLIDX=list(range(len(exprs))), dim=self.dim, nstrengths=self.strength_count, nkernels=len(self.kernels), diff --git a/sumpy/qbx.py b/sumpy/qbx.py index 3138ce19ed403bf02894226dc7baecbde63d7f8e..2df7300783f166519ae1d89a2951b4f0f0f81471 100644 --- a/sumpy/qbx.py +++ b/sumpy/qbx.py @@ -1,4 +1,8 @@ from __future__ import division +from __future__ import absolute_import +import six +from six.moves import range +from six.moves import zip __copyright__ = "Copyright (C) 2012 Andreas Kloeckner" @@ -101,7 +105,7 @@ class LayerPotentialBase(KernelComputation): from sumpy.symbolic import kill_trivial_assignments assignments = kill_trivial_assignments([ (name, expr.subs("tau", 0)) - for name, expr in sac.assignments.iteritems()], + for name, expr in six.iteritems(sac.assignments)], retain_names=result_names) from sumpy.codegen import to_loopy_insns @@ -145,7 +149,7 @@ class LayerPotentialBase(KernelComputation): for i, (expr, dtype) in enumerate(zip(exprs, self.value_dtypes)) ]+self.get_result_store_instructions(), arguments, - defines=dict(KNLIDX=range(len(exprs))), + defines=dict(KNLIDX=list(range(len(exprs)))), name=self.name, assumptions="nsources>=1 and ntargets>=1", default_offset=lp.auto, ) @@ -198,10 +202,10 @@ class LayerPotential(LayerPotentialBase): def get_input_and_output_arguments(self): return [ lp.GlobalArg("strength_%d" % i, None, shape="nsources", order="C") - for i in xrange(self.strength_count) + for i in range(self.strength_count) ]+[ lp.GlobalArg("result_%d" % i, None, shape="ntargets", order="C") - for i in xrange(len(self.kernels)) + for i in range(len(self.kernels)) ] def get_result_store_instructions(self): diff --git a/sumpy/symbolic.py b/sumpy/symbolic.py index ae720fa05f5c6eb24eb2261a0189aee2103b403c..fa40dfb9a0af6741343a23fb070b69e6797fa61d 100644 --- a/sumpy/symbolic.py +++ b/sumpy/symbolic.py @@ -1,4 +1,8 @@ from __future__ import division +from __future__ import absolute_import +import six +from six.moves import range +from six.moves import zip __copyright__ = "Copyright (C) 2012 Andreas Kloeckner" @@ -90,7 +94,7 @@ class _DerivativeKiller(IdentityMapperBase): def _get_assignments_in_maxima(assignments, prefix=""): - my_variable_names = set(assignments.iterkeys()) + my_variable_names = set(six.iterkeys(assignments)) written_assignments = set() prefix_subst_dict = dict( @@ -118,7 +122,7 @@ def _get_assignments_in_maxima(assignments, prefix=""): assignments[name].subs(prefix_subst_dict)))))) written_assignments.add(name) - for name in assignments.iterkeys(): + for name in six.iterkeys(assignments): if name not in written_assignments: write_assignment(name) @@ -146,7 +150,7 @@ def checked_cse(exprs, symbols=None): outf.write("ratprint:false;\n") outf.write("%s\n\n" % max_old) outf.write("%s\n" % max_new) - for i in xrange(len(exprs)): + for i in range(len(exprs)): outf.write("print(\"diff in expr %d:\n\");\n" % i) outf.write("print(ratsimp(old_expr%d - new_expr%d));\n" % (i, i)) diff --git a/sumpy/tools.py b/sumpy/tools.py index 271444aed0c283fd2c2a95e540e2941e8be693c6..f6c293bee95f0c624533b5c62acf8e93f5faa538 100644 --- a/sumpy/tools.py +++ b/sumpy/tools.py @@ -1,4 +1,8 @@ from __future__ import division +from __future__ import absolute_import +import six +from six.moves import range +from six.moves import zip __copyright__ = "Copyright (C) 2012 Andreas Kloeckner" @@ -109,7 +113,7 @@ def gather_arguments(kernel_likes): result[arg.name] = arg # FIXME: possibly check that arguments match before overwriting - return sorted(result.itervalues(), key=lambda arg: arg.name) + return sorted(six.itervalues(result), key=lambda arg: arg.name) def gather_source_arguments(kernel_likes): @@ -119,7 +123,7 @@ def gather_source_arguments(kernel_likes): result[arg.name] = arg # FIXME: possibly check that arguments match before overwriting - return sorted(result.itervalues(), key=lambda arg: arg.name) + return sorted(six.itervalues(result), key=lambda arg: arg.name) def gather_loopy_arguments(kernel_likes): @@ -212,7 +216,7 @@ class KernelCacheWrapper(object): import loopy.version cache_key = ( self.get_cache_key() - + tuple(sorted(kwargs.iteritems())) + + tuple(sorted(six.iteritems(kwargs))) + (loopy.version.DATA_MODEL_VERSION,)) try: diff --git a/sumpy/visualization.py b/sumpy/visualization.py index d175b0f774c4314a0194245881a8bfa6b5bcb87c..a0c0c06efcf25eb8e0eccf6f26fa8da35b7fd97b 100644 --- a/sumpy/visualization.py +++ b/sumpy/visualization.py @@ -1,4 +1,6 @@ from __future__ import division +from __future__ import absolute_import +from six.moves import range __copyright__ = "Copyright (C) 2012 Andreas Kloeckner" diff --git a/test/test_fmm.py b/test/test_fmm.py index 0726ca7642bd85753e56823b517315396cfaab9e..94be2b96373aa758274db3b15cda6deb20c33c7b 100644 --- a/test/test_fmm.py +++ b/test/test_fmm.py @@ -1,4 +1,7 @@ from __future__ import division +from __future__ import absolute_import +from __future__ import print_function +from six.moves import range __copyright__ = "Copyright (C) 2013 Andreas Kloeckner" @@ -83,7 +86,7 @@ def test_sumpy_fmm(ctx_getter, knl, local_expn_class, mpole_expn_class): fp = FieldPlotter(np.array([0.5, 0]), extent=3, npoints=200) from pytools.obj_array import make_obj_array targets = make_obj_array( - [fp.points[i] for i in xrange(knl.dim)]) + [fp.points[i] for i in range(knl.dim)]) from boxtree import TreeBuilder tb = TreeBuilder(ctx) @@ -102,10 +105,10 @@ def test_sumpy_fmm(ctx_getter, knl, local_expn_class, mpole_expn_class): host_trav = trav.get() if 1: - print "src_box", host_tree.find_box_nr_for_source(403) - print "tgt_box", host_tree.find_box_nr_for_target(28) - print list(host_trav.target_or_target_parent_boxes).index(37) - print host_trav.get_box_list("sep_bigger", 22) + print("src_box", host_tree.find_box_nr_for_source(403)) + print("tgt_box", host_tree.find_box_nr_for_target(28)) + print(list(host_trav.target_or_target_parent_boxes).index(37)) + print(host_trav.get_box_list("sep_bigger", 22)) from boxtree.visualization import TreePlotter plotter = TreePlotter(host_tree) @@ -166,7 +169,7 @@ def test_sumpy_fmm(ctx_getter, knl, local_expn_class, mpole_expn_class): pconv_verifier.add_data_point(order, rel_err) - print pconv_verifier + print(pconv_verifier) pconv_verifier() diff --git a/test/test_kernels.py b/test/test_kernels.py index c44324d5df2d2c9aab349a7201cee9dc3220b33c..a520fa4ec9b1e7a9658b3ff800ea539ffbb70f84 100644 --- a/test/test_kernels.py +++ b/test/test_kernels.py @@ -1,4 +1,7 @@ from __future__ import division +from __future__ import absolute_import +from __future__ import print_function +from six.moves import range __copyright__ = "Copyright (C) 2012 Andreas Kloeckner" @@ -75,7 +78,7 @@ def test_p2p(ctx_getter): targets = targets.T sources = sources.T - for itarg in xrange(n): + for itarg in range(n): potential_ref[itarg] = np.sum( strengths / @@ -84,7 +87,7 @@ def test_p2p(ctx_getter): potential_ref *= 1/(4*np.pi) rel_err = la.norm(potential - potential_ref)/la.norm(potential_ref) - print rel_err + print(rel_err) assert rel_err < 1e-3 @@ -262,7 +265,7 @@ def test_p2e2p(ctx_getter, base_knl, expn_class, order, with_source_derivative): eoc_rec_pot.add_data_point(h, err_pot) eoc_rec_grad_x.add_data_point(h, err_grad_x) - print expn_class, knl, order + print(expn_class, knl, order) print("POTENTIAL:") print(eoc_rec_pot) print("X TARGET DERIVATIVE:") @@ -524,11 +527,11 @@ def test_translations(ctx_getter, knl, local_expn_class, mpole_expn_class): ("p2m2m2l2p", pconv_verifier_p2m2m2l2p), ("full", pconv_verifier_full), ]: - print 30*"-" - print name - print 30*"-" - print verifier - print 30*"-" + print(30*"-") + print(name) + print(30*"-") + print(verifier) + print(30*"-") verifier()