Skip to content
Snippets Groups Projects
Commit 91cae896 authored by Martin Bauer's avatar Martin Bauer
Browse files

Added option to pass options to sympy CSE through simplification rule

parent f278b444
No related merge requests found
Pipeline #21070 canceled with stages
...@@ -29,7 +29,7 @@ def sort_assignments_topologically(assignments: Sequence[Union[Assignment, Node] ...@@ -29,7 +29,7 @@ def sort_assignments_topologically(assignments: Sequence[Union[Assignment, Node]
return [assignments[i] for i in sp.topological_sort((range(len(assignments)), edges))] return [assignments[i] for i in sp.topological_sort((range(len(assignments)), edges))]
def sympy_cse(ac): def sympy_cse(ac, **kwargs):
"""Searches for common subexpressions inside the assignment collection. """Searches for common subexpressions inside the assignment collection.
Searches is done in both the existing subexpressions as well as the assignments themselves. Searches is done in both the existing subexpressions as well as the assignments themselves.
...@@ -40,7 +40,7 @@ def sympy_cse(ac): ...@@ -40,7 +40,7 @@ def sympy_cse(ac):
all_assignments = [e for e in chain(ac.subexpressions, ac.main_assignments) if isinstance(e, Assignment)] all_assignments = [e for e in chain(ac.subexpressions, ac.main_assignments) if isinstance(e, Assignment)]
other_objects = [e for e in chain(ac.subexpressions, ac.main_assignments) if not isinstance(e, Assignment)] other_objects = [e for e in chain(ac.subexpressions, ac.main_assignments) if not isinstance(e, Assignment)]
replacements, new_eq = sp.cse(all_assignments, symbols=symbol_gen) replacements, new_eq = sp.cse(all_assignments, symbols=symbol_gen, **kwargs)
replacement_eqs = [Assignment(*r) for r in replacements] replacement_eqs = [Assignment(*r) for r in replacements]
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment