Skip to content
Snippets Groups Projects

Add CustomSympyPrinter._print_Sum

Closed Stephan Seitz requested to merge seitz/pystencils:print_sympy_sum into master
1 unresolved thread
Compare and
1 file
+ 24
0
Preferences
Compare changes
@@ -384,6 +384,30 @@ class CustomSympyPrinter(CCodePrinter):
else:
return res
def _print_Sum(self, expr):
template = jinja2.Template(
"""[&]() {
{{dtype}} sum = ({{dtype}}) 0;
for ( {{iterator_dtype}} {{var}} = {{start}}; {{condition}}; {{var}} += {{increment}} ) {
sum += {{expr}};
}
return sum;
}()""")
var = expr.limits[0][0]
start = expr.limits[0][1]
end = expr.limits[0][2]
code = template.render(
dtype='float',
Please register or sign in to reply
iterator_dtype='int',
var=self._print(var),
start=self._print(start),
end=self._print(end),
expr=self._print(expr.function),
increment=str(1),
condition=self._print(var) + ' <= ' + self._print(end) # if start < end else '>='
)
return code
_print_Max = C89CodePrinter._print_Max
_print_Min = C89CodePrinter._print_Min