From db4e5a862b0c9082b20152269772d269a0bb129c Mon Sep 17 00:00:00 2001 From: Stephan Seitz <stephan.seitz@fau.de> Date: Sun, 18 Aug 2019 13:28:26 +0200 Subject: [PATCH] Avoid optimizations of IntegerFunctionTwoArgsMixIn --- pystencils/math_optimizations.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pystencils/math_optimizations.py b/pystencils/math_optimizations.py index 44fda53e..0b64b3e7 100644 --- a/pystencils/math_optimizations.py +++ b/pystencils/math_optimizations.py @@ -9,6 +9,7 @@ import itertools from pystencils import Assignment from pystencils.astnodes import SympyAssignment +from pystencils.integer_functions import IntegerFunctionTwoArgsMixIn try: from sympy.codegen.rewriting import optims_c99, optimize @@ -24,6 +25,9 @@ try: optims_pystencils_cpu = [evaluate_constant_terms] + list(optims_c99) optims_pystencils_gpu = [evaluate_constant_terms] + list(optims_c99) except ImportError: + from warnings import warn + warn("Could not import ReplaceOptim, optims_c99, optimize from sympy.codegen.rewriting." + "Please update your sympy installation!") optims_c99 = [] optims_pystencils_cpu = [] optims_pystencils_gpu = [] @@ -34,7 +38,8 @@ def optimize_assignments(assignments, optimizations): if HAS_REWRITING: assignments = [Assignment(a.lhs, optimize(a.rhs, optimizations)) - if hasattr(a, 'lhs') else a for a in assignments] + if hasattr(a, 'lhs') and not a.rhs.atoms(IntegerFunctionTwoArgsMixIn) + else a for a in assignments] assignments_nodes = [a.atoms(SympyAssignment) for a in assignments] for a in itertools.chain.from_iterable(assignments_nodes): a.optimize(optimizations) -- GitLab