Skip to content
Snippets Groups Projects

Introduce default assignment simplifications

Merged Markus Holzer requested to merge holzer/pystencils:Simplifications into master
1 file
+ 6
2
Compare changes
  • Side-by-side
  • Inline
@@ -84,14 +84,18 @@ def test_loop_over_coordinate():
@@ -84,14 +84,18 @@ def test_loop_over_coordinate():
@pytest.mark.parametrize('default_assignment_simplifications', [False, True])
@pytest.mark.parametrize('default_assignment_simplifications', [False, True])
def test_sympy_assignment(default_assignment_simplifications):
def test_sympy_assignment(default_assignment_simplifications):
import logging
from pystencils.simp.simplifications import apply_sympy_optimisations
logging.basicConfig(level=logging.DEBUG)
assignment = SympyAssignment(dst[0, 0](0), sp.log(x + 3) / sp.log(2) + sp.log(x ** 2 + 1))
assignment = SympyAssignment(dst[0, 0](0), sp.log(x + 3) / sp.log(2) + sp.log(x ** 2 + 1))
config = ps.CreateKernelConfig(default_assignment_simplifications=default_assignment_simplifications)
config = ps.CreateKernelConfig(default_assignment_simplifications=default_assignment_simplifications)
ast = ps.create_kernel([assignment], config=config)
ast = ps.create_kernel([assignment], config=config)
code = ps.get_code_str(ast)
code = ps.get_code_str(ast)
 
if default_assignment_simplifications:
 
assignments = apply_sympy_optimisations([assignment])
 
print(assignments)
 
if default_assignment_simplifications:
if default_assignment_simplifications:
assert 'log1p' in code
assert 'log1p' in code
# constant term is directly evaluated
# constant term is directly evaluated
Loading