Skip to content
Snippets Groups Projects
Commit db4e5a86 authored by Stephan Seitz's avatar Stephan Seitz
Browse files

Avoid optimizations of IntegerFunctionTwoArgsMixIn

parent 55a6acd8
No related branches found
No related tags found
No related merge requests found
...@@ -9,6 +9,7 @@ import itertools ...@@ -9,6 +9,7 @@ import itertools
from pystencils import Assignment from pystencils import Assignment
from pystencils.astnodes import SympyAssignment from pystencils.astnodes import SympyAssignment
from pystencils.integer_functions import IntegerFunctionTwoArgsMixIn
try: try:
from sympy.codegen.rewriting import optims_c99, optimize from sympy.codegen.rewriting import optims_c99, optimize
...@@ -24,6 +25,9 @@ try: ...@@ -24,6 +25,9 @@ try:
optims_pystencils_cpu = [evaluate_constant_terms] + list(optims_c99) optims_pystencils_cpu = [evaluate_constant_terms] + list(optims_c99)
optims_pystencils_gpu = [evaluate_constant_terms] + list(optims_c99) optims_pystencils_gpu = [evaluate_constant_terms] + list(optims_c99)
except ImportError: 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_c99 = []
optims_pystencils_cpu = [] optims_pystencils_cpu = []
optims_pystencils_gpu = [] optims_pystencils_gpu = []
...@@ -34,7 +38,8 @@ def optimize_assignments(assignments, optimizations): ...@@ -34,7 +38,8 @@ def optimize_assignments(assignments, optimizations):
if HAS_REWRITING: if HAS_REWRITING:
assignments = [Assignment(a.lhs, optimize(a.rhs, optimizations)) 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] assignments_nodes = [a.atoms(SympyAssignment) for a in assignments]
for a in itertools.chain.from_iterable(assignments_nodes): for a in itertools.chain.from_iterable(assignments_nodes):
a.optimize(optimizations) a.optimize(optimizations)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment